Skip to content

karmakrafts/kMMIO

Repository files navigation

kMMIO

Common MMIO API for Kotlin Multiplatform based on kotlinx.io.
This library was developed as part of the Kleaver project.

Platform support

  • Windows x64
  • Linux x64
  • Linux arm64
  • macOS x64
  • macOS arm64
  • iOS x64
  • iOS arm64
  • Android Native x64
  • Android Native arm64
  • Android Native arm32

Support for the JVM is planned.

How to use it

First, add a dependency on the library:

repositories {
    maven("https://files.karmakrafts.dev/maven")
}

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                implementation("io.karma.kmmio:kmmio:<version>")
            }
        }
    }
}

Afterwards, you can access all APIs from any native source set:

import io.karma.kmmio.AccessFlags
import io.karma.kmmio.AccessFlags.Companion
import io.karma.kmmio.MemoryRegion

fun main() {
    MemoryRegion.map(path, AccessFlags.READ + AccessFlags.WRITE).use {
        it.asSource() // Consume data through a kotlinx.io.Source
        it.asSink() // Produce data through a kotlinx.io.Sink
    }
}