Skip to content

Latest commit

 

History

History
165 lines (124 loc) · 7.63 KB

CHANGELOG.md

File metadata and controls

165 lines (124 loc) · 7.63 KB

CHANGELOG

0.6.0

Published 19 November 2024

Features

  • 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

0.5.4

Published 17 September 2024

Features

  • 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

0.5.3

Published 19 August 2024

Features

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

0.5.2

Published 15 August 2024

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

0.5.1

Published 15 July 2024

Bugfixes

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

0.5.0

Published 12 July 2024

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 pool under a high contention due to concurrent requests. Size of the segment pool on the JVM could now be statically configured by setting a system property kotlinx.io.pool.size.bytes.

0.4.0

Published 6 June 2024

Features

  • Updated Kotlin to 2.0 #327

0.3.5

Published 17 May 2024

Features

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

0.3.4

Published 8 May 2024

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

0.3.3

Published 22 Apr 2024

Features

  • Reimplemented file metadata gathering without required reasoning APIs on Apple targets #297

Bugfixes

  • For JS target, Webpack should no longer report missing nodejs modules during compilation #285

0.3.2

Published 18 Mar 2024

Features

  • Implemented basic filesystem support for Wasm WASI target #257
  • Enabled native benchmarks by default #263

0.3.1

Published 2 Feb 2024

Features

  • Updated Kotlin to 1.9.22
  • Enabled Wasm Wasi target #236 (Note that neither of Wasm targets has filesystem support yet)
  • Support path resolution #228

Bugfixes

  • Fixed Path::parent behavior on Windows #227
  • Aligned behavior of FileSystem::sink and FileSystem::source across all platforms #252
  • Fixed handling of paths containing a whitespace character #248

0.3.0

Published 13 Sep 2023

Features

  • Enabled Wasm target #164
  • Added Sink/Source integration with Apple's NSInputStream and NSOutputStream (#174)
  • Added extension functions integrating ByteString with Base64 and HexFormat APIs (#149)
  • Added extension functions to read and write floating point numbers (#167)
  • Extended filesystems support by adding functions to create and delete files and directories, check their existence, perform atomic move, and get file size (#211, #214). Also extended Path's API to request Path's parent and to get file's name (#206, #212).
  • Updated Kotlin version to 1.9.10

Bugfixes

  • Fixed undefined behavior in the ByteString's hashCode computation on native targets (#190)
  • Fixed compatibility issues with Android API 25 and below (#202)

0.2.1

Published 11 Jul 2023

The release includes a bug fix solving the issue with dependency management.

Bugfixes

  • Fixed the dependency type for bytesting module, it is no longer required to explicitly specify it when using kotlinx-io-core (#169).

0.2.0

Published 3 Jul 2023

Initial release of the new kotlinx-io version implemented based on Okio library.

Features

  • A trimmed-down and reworked version of the core Okio API (#132, #137)
  • ByteString implementation (#133)

Changelog for previous versions may be found in CHANGELOG-0.1.X.md