Aurora KInterop

Aurora KInterop

A project that allows interaction between KMP and the Aurora OS.

EN | RU

Aurora KInterop

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

Key Features

  • Two-Level Architecture: Rust backend (CInterop) and Kotlin Multiplatform wrapper (KInterop).
  • Modularity: A set of isolated libraries to access various system features (battery, camera, network, sensors, etc.).
  • Cross-Platform: Built on Kotlin Multiplatform with support for Linux (Aurora OS).

Publishing to Local Maven

The project consists of two independent build layers. There is a strict dependency: 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                                      │
└─────────────────────────────────────────────────────────────┘

On Linux, both levels are built automatically with a single command:

./gradlew publishToMavenLocalAll

Installation

Add the necessary libraries to your commonMain source set:

kotlin {
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("ru.auroraos.kmp:ak-battery-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-camera:0.0.1")
                implementation("ru.auroraos.kmp:ak-charts:0.0.1")
                implementation("ru.auroraos.kmp:ak-connectivity-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-device-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-galileo:0.0.1")
                implementation("ru.auroraos.kmp:ak-keyboard-maliit:0.0.1")
                implementation("ru.auroraos.kmp:ak-local-notification:0.0.1")
                implementation("ru.auroraos.kmp:ak-location-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-package-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-path-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-player:0.0.1")
                implementation("ru.auroraos.kmp:ak-sensors-info:0.0.1")
                implementation("ru.auroraos.kmp:ak-share-data:0.0.1")
                implementation("ru.auroraos.kmp:ak-shared-preferences:0.0.1")
                implementation("ru.auroraos.kmp:ak-uri-launcher:0.0.1")
                implementation("ru.auroraos.kmp:ak-vibration:0.0.1")
                implementation("ru.auroraos.kmp:ak-wakelock:0.0.1")
                implementation("ru.auroraos.kmp:ak-webview:0.0.1")
                implementation("ru.auroraos.kmp:ak-window:0.0.1")
                implementation("ru.auroraos.kmp:ak-workmanager:0.0.1")
            }
        }
    }
}

Usage

The project includes the following modules: