| Multiplatform |
| ============= |
| |
| Okio is a [Kotlin Multiplatform][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][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. |
| |
| |
| [kotlin_multiplatform]: https://kotlinlang.org/docs/reference/multiplatform.html |
| [mingw]: http://www.mingw.org/ |
| [node_js]: https://nodejs.org/api/fs.html |
| |
| ## Gradle configuration |
| |
| ```kotlin |
| // build.gradle.kts |
| kotlin { |
| sourceSets { |
| val okioVersion = "3.XXX" |
| val commonMain by getting { |
| dependencies { |
| implementation("com.squareup.okio:okio:$okioVersion") |
| } |
| } |
| val jsMain by getting { |
| dependencies { |
| implementation("com.squareup.okio:okio-nodefilesystem:$okioVersion") |
| } |
| } |
| val commonTest by getting { |
| dependencies { |
| implementation("com.squareup.okio:okio-fakefilesystem:$okioVersion") |
| } |
| } |
| } |
| } |
| ``` |