Skip to content

Multiplatform

Okio is a Kotlin Multiplatform project. We’re still completing our feature coverage.

Compression (Deflater, Inflater, Gzip)

JVM-only.

Concurrency (Pipe, Timeouts, Throttler)

JVM-only.

Timeout is on all platforms, but only the JVM has a useful implementation.

Core (Buffer, ByteString, Source, Sink)

Available on all platforms.

File System

Available on all platforms. For JavaScript this requires Node.js.

Hashing

Okio includes Kotlin implementations of MD5, SHA-1, SHA-256, and SHA-512. This includes both hash functions and HMAC functions.

Okio uses the built-in implementations of these functions on the JVM.

Gradle configuration

// build.gradle.kts
kotlin {
    sourceSets {
        all {
            languageSettings.useExperimentalAnnotation("kotlin.RequiresOptIn")               
            languageSettings.useExperimentalAnnotation("okio.ExperimentalFileSystem")
        }

        val okioVersion = "3.XXX"
        val commonMain by getting {
            dependencies {
                implementation("com.squareup.okio:okio-multiplatform:$okioVersion")
            }
        }
        val jsMain by getting {
            dependencies {
                implementation("com.squareup.okio:okio-nodefilesystem-js:$okioVersion")
            }
        }
        val commonTest by getting {
            dependencies {
                implementation("com.squareup.okio:okio-fakefilesystem:$okioVersion")
            }
        }
    }
}