EN | RU

Aurora KInterop

Kotlin Multiplatform libraries provide convenient functionality for interacting with Aurora OS.

Libs

Building the Project

The project consists of two independent build layers. Each layer handles its specific task, and there is a strict dependency between them: it is impossible to build the upper layer without first building the lower one.

┌─────────────────────────────────────────────────────────────┐
│  Level 2: KInterop (Kotlin Multiplatform)                   │
│  ─────────────────────────────────────────                  │
│  • Kotlin bindings over native libraries                    │
│  • Module publication to Maven                              │
│  • Works on any platform                                    │
└────────────────────────────┬────────────────────────────────┘

┌────────────────────────────┴────────────────────────────────┐
│  Level 1: CInterop (Rust backend)                           │
│  ─────────────────────────────────────────                  │
│  • Native libraries (Rust + cross-compilation)              │
│  • Included as a git submodule                              │
│  • Works ONLY on Linux                                      │
└─────────────────────────────────────────────────────────────┘

Level 1: Aurora CInterop

The Aurora CInterop project acts as the project's backend: Rust libraries that provide interaction with the Aurora OS API. It is included in the main project as a git submodule (submodules/aurora-cinterop).

The build output is saved in the submodules/aurora-cinterop/BUILDS/ directory, which is included in .gitignore (as it contains platform-specific artifacts).

A detailed description of the build process, dependencies, and tools used can be found in the submodule's README.

Level 2: Aurora KInterop

The Aurora KInterop project is a Kotlin Multiplatform wrapper over the native libraries. It uses cinterop generation based on headers from the first level and provides a type-safe Kotlin API for application developers.

How to Build

On Linux — both layers are built automatically with a single command:

./gradlew publishToMavenLocalAll

Gradle will automatically execute the tasks in the correct order: updateAuroraCinteropbuildAuroraCinteropcinterop*publishToMavenLocal.

️ If you are using macOS or Windows, you can obtain the Aurora CInterop artifacts by building them on Linux and placing them in submodules/aurora-cinterop/BUILDS.

Alternatively, you can use pre-built Kotlin Multiplatform libraries with Aurora OS support: Aurora Maven

Testing

Run the complete testing pipeline for all modules:

./gradlew runTestsPipeline