kotlinx-io
kotlinx-io copied to clipboard
Kotlin multiplatform I/O library
Currently, all benchmarks are targeting the particular `Source` instance - `Buffer`. It would be nice to also have benchmarks calling methods on `Source`, as some extensions have different implementations for...
[Okio](https://square.github.io/okio/) is a popular, well-established, and battle-tested library providing rich functionality and good performance. It provides concise yet powerful primitives for multiplatform IO. `kotlinx-io` could use Okio as a basis....
https://github.com/Kotlin/kotlinx-io/issues/195 disabled native target for benchmarks. It should be enabled back as soon as: - `kotlinx-benchmark` will support Kotlin 1.9 - https://github.com/Kotlin/kotlinx-benchmark/issues/114 will be fixed.
For a lot of my use-cases, I would need some shared read-only buffer views with random-access capability. The needed features would be: - being backed by a list of segments,...
On current moment if we will not read `Buffer` fully we will have a leak of underlying `Segment` (or even multiple segments). While for now `Segment` has underlying `ByteArray` as...
As stated in https://github.com/Kotlin/kotlinx-io/issues/132, `kotlinx-io` don't include Okio APIs aimed for performant sequential and bulk ops (like, UnsafeCursor). Such API is required to implement previously removed functionality (like select) efficiently....
I wonder why there isn't a convenient copy method. I would have expected that in `SystemFileSystem`. For now I wrote a handy extension function to Path: ``` @OptIn(ExperimentalStdlibApi::class) fun Path.copyTo(destination:...
Multiplatform `Source`s and `Sink`s are already great features, but it would also be nice to have random-access capabilities like Okio's `FileHandle` class. The `BufferView` option discussed in #225 would help...
In protocol parsing/writing we frequently need to operate with one-byte encoded strings that a expected to consist only of ASCII characters. Please add an ability to convert a string literal...
When writing one buffer into another, an attempt to compact the tail segment is made to [reduce the memory footprint](https://github.com/Kotlin/kotlinx-io/blob/7fb9df4a08da6e2be4b942b91975d2db61dbf434/core/common/src/Buffer.kt#L431) by merging the tail with its predecessor: ``` // initial...