Skip to content

Releases: Kotlin/kotlinx-io

v0.5.4

17 Sep 21:56
Compare
Choose a tag to compare

Changes

  • Extended Unsafe API with a function allowing to iterate over all Buffer's segments #383
  • Implemented ByteString conversion to/from NSData on Apple platforms #384
  • Implemented extensions to read/write ByteString from to/from ByteBuffer, as well as representing
    ByteString as a read-only ByteBuffer 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

19 Aug 14:57
Compare
Choose a tag to compare

Changes

  • Updated JS braces library to 3.0.3
  • More unnecessary backing fields were eliminated #374

Thanks to @JakeWharton for the contribution!

v0.5.2

15 Aug 18:38
Compare
Choose a tag to compare

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 never kotlinx-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

15 Jul 10:50
Compare
Choose a tag to compare

Bugfixes

  • Fixed a bug in segment pool implementation affecting a second level pool uses.

v0.5.0

12 Jul 13:36
Compare
Choose a tag to compare

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 or io_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 property kotlinx.io.pool.size.bytes.

Thanks to @bjhham, @e5l, @lppedd, @qwwdfsad, @shanshin, and @whyoleg for their participation in this release!

v0.4.0

06 Jun 09:20
Compare
Choose a tag to compare

Features

Updated Kotlin version to 2.0.

v0.3.5

17 May 13:57
Compare
Choose a tag to compare

Features

  • Provided an extension function to write CharSequences (Sink.writeString overloaded for CharSequence) #318
  • Various minor improvements in build scripts and docs

Shout out to @whyoleg for improving build scripts!

v0.3.4

08 May 14:03
Compare
Choose a tag to compare

Features

  • Kotlin updated to 1.9.24 #315
  • Supported linuxArm32Hfp target #303
  • Enabled KLib ABI validation
  • Provided extension functions to read (Source.readCodePointValue) and write (Sink.writeCodePointValue) Unicode code point values #307
  • Provided function to list directories (FileSystem.list) #222

v0.3.3

22 Apr 14:28
Compare
Choose a tag to compare

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

v0.3.2

18 Mar 10:18
Compare
Choose a tag to compare

Features

  • Implemented basic filesystem support for Wasm targets (#256, #257)
  • Enabled native benchmarks by default (#263)
  • Build scripts were updated to use default template (#272)
  • Added missing IOException constructor (#271)

Thanks to @whyoleg, @Goooler, @lukellmann for contributions!