2 Star 0 Fork 0

mirrors_Kotlin/kotlinx-io

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

kotlinx-io

Kotlin Alpha JetBrains incubator project GitHub license Download Kotlin TeamCity build KDoc link

A multiplatform Kotlin library providing basic IO primitives. kotlinx-io is based on Okio but does not preserve backward compatibility with it.

Overview

kotlinx-io is built around Buffer - a mutable sequence of bytes.

Buffer works like a queue, allowing to read data from its head or to write data to its tail. Buffer provides functions to read and write data of different built-in types, and to copy data to or from other Buffers. Depending on the target platform, extension functions allowing data exchange with platform-specific types are also available.

A Buffer consists of segments organized as a linked list: segments allow reducing memory allocations during the buffer's expansion and copy, with the latter achieved by delegating or sharing the ownership over the underlying buffer's segments with other buffers.

kotlinx-io provides interfaces representing data sources and destinations - Source and Sink, and in addition to the mutable Buffer the library also provides an immutable sequence of bytes - ByteString.

An experimental filesystem support is shipped under the kotlinx.io.files package, which includes the FileSystem interface and its default implementation - SystemFileSystem.

FileSystem provides basic operations for working with files and directories, which are represented by yet another class under the same package - Path.

There are several kotlinx-io modules:

  • kotlinx-io-bytestring - provides ByteString.
  • kotlinx-io-core - provides IO primitives (Buffer, Source, Sink), filesystems support, depends on kotlinx-io-bytestring.
  • kotlinx-io-okio - bridges kotlinx-io and Okio ByteString, kotlinx.io.RawSource and okio.Source, kotlinx.io.RawSink and okio.Sink.

Using in your projects

Note that the library is experimental, and the API is subject to change.

Gradle

Make sure that you have mavenCentral() in the list of repositories:

repositories {
    mavenCentral()
}

Add the library to dependencies:

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.7.0")
}

In multiplatform projects, add a dependency to the commonMain source set dependencies:

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.7.0")
            }
        }
    }
}

Maven

Add the library to dependencies:

<dependency>
    <groupId>org.jetbrains.kotlinx</groupId>
    <artifactId>kotlinx-io-core-jvm</artifactId>
    <version>0.7.0</version>
</dependency>

JPMS support

On JVM, kotlinx-io supports Java Modules:

  • kotlinx-io-bytestring library provides kotlinx.io.bytestring module;
  • kotlinx-io-core library provides kotlinx.io.core module.
  • kotlinx-io-okio library provides kotlinx.io.okio module.

Read this article for details on how to configure a Gradle project to utilize JPMS.

Android

kotlinx-io is not tested on Android on a regular basis, but the library is compatible with Android 5.0+ (API level 21+).

Contributing

Read the Contributing Guidelines.

Code of Conduct

This project and the corresponding community are governed by the JetBrains Open Source and Community Code of Conduct. Please make sure you read it.

License

kotlinx-io is licensed under the Apache 2.0 License.

Credits

Thanks to everyone involved in the project.

An honorable mention goes to the developers of Okio that served as the foundation for kotlinx-io and to Jesse Wilson, for the help with Okio adaption, his suggestions, assistance and guidance with kotlinx-io development.

空文件

简介

Kotlin multiplatform I/O library 展开 收起
README
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_Kotlin/kotlinx-io.git
git@gitee.com:mirrors_Kotlin/kotlinx-io.git
mirrors_Kotlin
kotlinx-io
kotlinx-io
master

搜索帮助