{"id":13407061,"url":"https://github.com/Kotlin/kotlinx-io","last_synced_at":"2025-03-14T11:31:00.405Z","repository":{"id":26377577,"uuid":"105809601","full_name":"Kotlin/kotlinx-io","owner":"Kotlin","description":"Kotlin multiplatform I/O library","archived":false,"fork":false,"pushed_at":"2025-01-08T23:08:57.000Z","size":5063,"stargazers_count":1337,"open_issues_count":80,"forks_count":60,"subscribers_count":56,"default_branch":"master","last_synced_at":"2025-01-25T09:05:28.913Z","etag":null,"topics":["io","kotlin","kotlinx"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kotlin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG-0.1.X.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-04T19:31:15.000Z","updated_at":"2025-01-24T13:22:14.000Z","dependencies_parsed_at":"2023-10-11T15:59:42.000Z","dependency_job_id":"ba024d6e-87f7-4664-adef-2436b2a11e77","html_url":"https://github.com/Kotlin/kotlinx-io","commit_stats":{"total_commits":792,"total_committers":28,"mean_commits":"28.285714285714285","dds":"0.33712121212121215","last_synced_commit":"8b421cd5f237b1b6dadaec02de2305f3b76339cb"},"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fkotlinx-io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fkotlinx-io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fkotlinx-io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kotlin%2Fkotlinx-io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kotlin","download_url":"https://codeload.github.com/Kotlin/kotlinx-io/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243352032,"owners_count":20276914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["io","kotlin","kotlinx"],"created_at":"2024-07-30T20:00:18.887Z","updated_at":"2025-03-14T11:31:00.388Z","avatar_url":"https://github.com/Kotlin.png","language":"Kotlin","funding_links":[],"categories":["Libraries","Kotlin Tools and Frameworks","Tools","Kotlin Tools, Libraries, and Frameworks","Kotlin"],"sub_categories":["📁 File","VS Code Extensions for Developer Productivity","Mesh networks","JavaScript Libraries for Machine Learning"],"readme":"# kotlinx-io\n\n[![Kotlin Alpha](https://kotl.in/badges/alpha.svg)](https://kotlinlang.org/docs/components-stability.html)\n[![JetBrains incubator project](https://jb.gg/badges/incubator.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)\n[![GitHub license](https://img.shields.io/github/license/kotlin/kotlinx-io)](LICENSE)\n[![Download](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-io-core)](https://central.sonatype.com/artifact/org.jetbrains.kotlinx/kotlinx-io-core/)\n[![Kotlin](https://img.shields.io/badge/kotlin-2.1-blue.svg?logo=kotlin)](http://kotlinlang.org)\n[![TeamCity build](https://img.shields.io/teamcity/build/s/KotlinTools_KotlinxIo_BuildAggregated.svg?server=http%3A%2F%2Fteamcity.jetbrains.com)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=KotlinTools_KotlinxIo_BuildAggregated\u0026guest=1)\n[![KDoc link](https://img.shields.io/badge/API_reference-KDoc-blue)](https://kotlin.github.io/kotlinx-io/)\n\nA multiplatform Kotlin library providing basic IO primitives. `kotlinx-io` is based on [Okio](https://github.com/square/okio) but does not preserve backward compatibility with it.\n\n## Overview\n**kotlinx-io** is built around `Buffer` - a mutable sequence of bytes.\n\n`Buffer` works like a queue, allowing to read data from its head or to write data to its tail.\n`Buffer` provides functions to read and write data of different built-in types, and to copy data to or from other `Buffer`s.\nDepending on the target platform, extension functions allowing data exchange with platform-specific types are also available.\n\nA `Buffer` consists of segments organized as a linked list: segments allow reducing memory allocations during the buffer's expansion and copy,\nwith the latter achieved by delegating or sharing the ownership over the underlying buffer's segments with other buffers.\n\n**kotlinx-io** provides interfaces representing data sources and destinations - `Source` and `Sink`,\nand in addition to the *mutable* `Buffer` the library also provides an *immutable* sequence of bytes - `ByteString`.\n\nAn experimental filesystem support is shipped under the `kotlinx.io.files` package,\nwhich includes the `FileSystem` interface and its default implementation - `SystemFileSystem`.\n\n`FileSystem` provides basic operations for working with files and directories, which are represented by yet another class under the same package - `Path`.\n\nThere are several `kotlinx-io` modules:\n- [kotlinx-io-bytestring](./bytestring) - provides `ByteString`.\n- [kotlinx-io-core](./core) - provides IO primitives (`Buffer`, `Source`, `Sink`), filesystems support, depends on `kotlinx-io-bytestring`.\n- [kotlinx-io-okio](./integration/okio) - bridges `kotlinx-io` and `Okio` `ByteString`, `kotlinx.io.RawSource` and `okio.Source`, `kotlinx.io.RawSink` and `okio.Sink`. \n\n## Using in your projects\n\n\u003e Note that the library is experimental, and the API is subject to change.\n\n### Gradle\n\nMake sure that you have `mavenCentral()` in the list of repositories:\n```kotlin\nrepositories {\n    mavenCentral()\n}\n```\n\nAdd the library to dependencies:\n```kotlin\ndependencies {\n    implementation(\"org.jetbrains.kotlinx:kotlinx-io-core:0.7.0\")\n}\n```\n\nIn multiplatform projects, add a dependency to the `commonMain` source set dependencies:\n```kotlin\nkotlin {\n    sourceSets {\n        commonMain {\n            dependencies {\n                implementation(\"org.jetbrains.kotlinx:kotlinx-io-core:0.7.0\")\n            }\n        }\n    }\n}\n```\n\n### Maven\n\nAdd the library to dependencies:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.jetbrains.kotlinx\u003c/groupId\u003e\n    \u003cartifactId\u003ekotlinx-io-core-jvm\u003c/artifactId\u003e\n    \u003cversion\u003e0.7.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### JPMS support\n\nOn JVM, `kotlinx-io` supports Java Modules:\n- `kotlinx-io-bytestring` library provides `kotlinx.io.bytestring` module; \n- `kotlinx-io-core` library provides `kotlinx.io.core` module.\n- `kotlinx-io-okio` library provides `kotlinx.io.okio` module.\n\nRead [this](https://kotlinlang.org/docs/gradle-configure-project.html#configure-with-java-modules-jpms-enabled) article \nfor details on how to configure a Gradle project to utilize JPMS.\n\n### Android\n\n`kotlinx-io` is not tested on Android on a regular basis,\nbut the library is compatible with Android 5.0+ (API level 21+).\n\n## Contributing\n\nRead the [Contributing Guidelines](CONTRIBUTING.md).\n\n## Code of Conduct\nThis project and the corresponding community are governed by the [JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct). Please make sure you read it.\n\n## License\nkotlinx-io is licensed under the [Apache 2.0 License](LICENSE).\n\n## Credits\n\nThanks to everyone involved in the project.\n\nAn honorable mention goes to the developers of [Okio](https://square.github.io/okio/) \nthat served as the foundation for `kotlinx-io` and to [Jesse Wilson](https://github.com/swankjesse),\nfor the help with `Okio` adaption, his suggestions, assistance and guidance with `kotlinx-io` development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotlin%2Fkotlinx-io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKotlin%2Fkotlinx-io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotlin%2Fkotlinx-io/lists"}