Skip to content

karmakrafts/kMMIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

31eb5cf · Mar 3, 2025

History

47 Commits
Mar 3, 2025
Mar 3, 2025
Mar 3, 2025
Mar 3, 2025
Feb 16, 2025
Oct 30, 2024
Mar 3, 2025
Feb 8, 2025
Mar 3, 2025
Mar 3, 2025
Feb 8, 2025
Oct 30, 2024
Oct 30, 2024
Mar 3, 2025

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
    }
}