Releases: Kotlin/kotlinx-io
v0.6.0
Changes
- On JVM, libraries now include Java Platform Module System (JPMS) modules #406
- Made Segment's size and capacity public #409
- Improved performance of extension functions reading and writing using little-endian byte order #414
- Minor documentation improvements
Thanks to @whyoleg and @zoobestik for contributions!
v0.5.4
Changes
- Extended Unsafe API with a function allowing to iterate over all Buffer's segments #383
- Implemented
ByteString
conversion to/fromNSData
on Apple platforms #384 - Implemented extensions to read/write
ByteString
from to/fromByteBuffer
, as well as representing
ByteString
as a read-onlyByteBuffer
on JVM #387 - Implemented
ByteString
factory accepting unsigned bytes #390 - Reimplemented various functions using Unsafe API #337
- Minor documentation improvements
Thanks to @qwwdfsad, @JakeWharton, and @joffrey-bion for contributions!
v0.5.3
v0.5.2
Features
-
Unsafe API method signatures were updated to return number of written/read bytes #360
Note that it's a breaking change as return type is a part of method signature.
However, updated methods are all inline, so in general,
projects depending on libraries that were compiled against the previous version
should not experience binary incompatibility issues after adding a dependency on a neverkotlinx-io
version. -
Added call-in-place contracts to Unsafe API methods #361
-
Updated Gradle and some dependencies #353
-
Improved build scripts #371
-
Removed the
Buffer.buffer
backing field #366
Thanks to @JakeWharton and @Goooler for their contributions!
v0.5.1
v0.5.0
Features
-
Provided an API allowing direct access to Buffer and Segment internals #135, #166
The API is unsafe, delisted from public docs and requires explicit opt-in. It's recommended to avoid this API unless you're working on integration with other APIs (like,
java.nio
orio_uring
, for example). -
Improved the way segment pooling is working on JVM #352
Now sharing a segment won't make an original segment and all its copies recyclable. Instead, the last remaining copy will be placed back into the pool when recycled.
Segments are no longer allocated or lost when taking or recycling a segment from a pool under a high contention due to concurrent requests.
The size of the segment pool on the JVM could now be statically configured by setting a system propertykotlinx.io.pool.size.bytes
.
Thanks to @bjhham, @e5l, @lppedd, @qwwdfsad, @shanshin, and @whyoleg for their participation in this release!
v0.4.0
v0.3.5
v0.3.4
v0.3.3
The release replaces a required reasoning API uses with alternatives that do not require any appβs privacy manifest updates for iOS/iPadOS/tvOS/watchOS apps.
Features
- Reimplemented file metadata gathering without required reasoning APIs on Apple targets #297
- Updated Kover version #293
Bugfixes
- Muted Webpack warnings about node-js modules on JS target #285