Skip to content

Releases: typelevel/fs2

v1.0.0

05 Oct 14:38
Compare
Choose a tag to compare

This is the first release of the FS2 1.0.x series. There are a substantial number of changes from 0.10 to 1.0. Primarily, this release provides interoperability with cats-effect 1.0.0. The migration guide contains details on how to migrate from 0.10 to 1.0. In addition to the changes listed in the migration guide, 1.0.0 contains the following notable changes:

  • Significantly better performance overall
  • Simpler API overall, including much less need for type annotations / covary calls
  • Removal of Segment in favor of Chunk, resulting in both faster and simpler to understand code
  • Faster and more flexible queues
  • Fast, efficient support for fanout via fs2.concurrent.{Broadcast, Balance} types along with methods like Stream#broadcast and Stream#balance
  • Interop with cats-effect cancelation support (e.g., a compiled stream can be started and then the resulting fiber canceled with all the normal resource finalization guarantees)
  • Support for grouping n elements in bounded time via groupWithin
  • Stream switching via switchMap
  • Addition of "fallible streams" -- streams which may fail with an error but are otherwise pure. Pure streams are now truly pure -- they cannot fail with an error.
  • Flexible stream compilation support, featuring a single API for compilation of pure streams, fallible streams, and effectful streams.

There are also two new modules:

  • fs2-reactive-streams - This module is the work of @zainab-ali and was imported from https://github.com/zainab-ali/fs2-reactive-streams. It is now a submodule of the fs2 repository.
  • fs2-experimental - This module contains APIs that aren't yet considered stable but might nonetheless be useful. At the present time, this includes the new PubSub datatype, which is used internally to implement queues & signals as well as broadcast & balancing support. Library authors: please do not use this module -- it's intended for use in applications only (leaves of the dependency graph) so as to avoid binary compatibility problems. New APIs will incubate here and eventually move to the core module.

Also, note the fs2-scodec module has been removed and ByteVectorChunk is now in the core module, inside the Chunk companion object.

This release has been made possible by 32 direct contributors as well as many others who have participated in discussions on the issue tracker, in the Gitter channel, and other project spaces. Thanks to all of you!

git shortlog -sn --no-merges 19f7fcdc.."v1.0.0"

  • Michael Pilquist
  • Pavel Chlupacek
  • Fabio Labella
  • Tom Lin
  • Adam Chlupacek
  • Changlin Li
  • Zainab Ali
  • Guillaume Martres
  • Jose C
  • Gabriel Volpe
  • Brian P. Holt
  • Ross A. Baker
  • Sarunas Valaskevicius
  • Jakub Kozłowski
  • Eike Kettner
  • Milan Raulim
  • Derek Williams
  • Qi Wang
  • Rob Norris
  • Sam Desborough
  • Christopher Davenport
  • Yilin Wei
  • Zelenya
  • Andrzej Sołtysik
  • Kenji Yoshida
  • Akhtyam Sakaev
  • Felix Mulder
  • Frank S. Thomas
  • Gavin Bisesi
  • Kazuhiro Sera
  • Keir Lawson
  • Luciano Joublanc
  • Kevin Walter

v1.0.0-RC2

28 Sep 23:07
Compare
Choose a tag to compare
v1.0.0-RC2 Pre-release
Pre-release

This is the second release candidate of FS2 1.0.0. This release is binary compatible with FS2 1.0.0-RC1. The only changes are:

  • Fixed a bug in Chunk#toArray when working with NIO byte buffers (#1275)
  • Added dequeueChunk1 and tryDequeueChunk1 methods to Queue (#1274)

See the release notes for RC1 for more information: https://github.com/functional-streams-for-scala/fs2/releases/tag/v1.0.0-RC1

v1.0.0-RC1

25 Sep 23:06
Compare
Choose a tag to compare
v1.0.0-RC1 Pre-release
Pre-release

This is the first release candidate of FS2 1.0.0. There are a substantial number of changes from 0.10 to 1.0. Primarily, this release provides interoperability with cats-effect 1.0.0. The migration guide contains details on how to migrate from 0.10 to 1.0. In addition to the changes listed in the migration guide, 1.0.0 contains the following notable changes:

  • Significantly better performance overall
  • Simpler API overall, including much less need for type annotations / covary calls
  • Removal of Segment in favor of Chunk, resulting in both faster and simpler to understand code
  • Faster and more flexible queues
  • Fast, efficient support for fanout via fs2.concurrent.{Broadcast, Balance} types along with methods like Stream#broadcast and Stream#balance
  • Interop with cats-effect cancelation support (e.g., a compiled stream can be started and then the resulting fiber canceled with all the normal resource finalization guarantees)
  • Addition of "fallible streams" -- streams which may fail with an error but are otherwise pure. Pure streams are now truly pure -- they cannot fail with an error.
  • Flexible stream compilation support, featuring a single API for compilation of pure streams, fallible streams, and effectful streams.

There are also two new modules:

  • fs2-reactive-streams - This module is the work of @zainab-ali and was imported from https://github.com/zainab-ali/fs2-reactive-streams. It is now a submodule of the fs2 repository.
  • fs2-experimental - This module contains APIs that aren't yet considered stable but might nonetheless be useful. At the present time, this includes the new PubSub datatype, which is used internally to implement queues & signals as well as broadcast & balancing support. Library authors: please do not use this module -- it's intended for use in applications only (leaves of the dependency graph) so as to avoid binary compatibility problems. New APIs will incubate here and eventually move to the core module.

Also, note the fs2-scodec module has been removed and ByteVectorChunk is now in the core module, inside the Chunk companion object.

1.0.0 final is currently scheduled for Friday October 5th, assuming no major issues are found.

This release has been made possible by 32 direct contributors as well as many others who have participated in discussions on the issue tracker, in the Gitter channel, and other project spaces. Thanks to all of you!

git shortlog -sn --no-merges 19f7fcdc.."v1.0.0-RC1"

  • Michael Pilquist
  • Pavel Chlupacek
  • Fabio Labella
  • Tom Lin
  • Adam Chlupacek
  • Changlin Li
  • Zainab Ali
  • Guillaume Martres
  • Jose C
  • Gabriel Volpe
  • Brian P. Holt
  • Ross A. Baker
  • Sarunas Valaskevicius
  • Jakub Kozłowski
  • Eike Kettner
  • Milan Raulim
  • Derek Williams
  • Qi Wang
  • Rob Norris
  • Sam Desborough
  • Christopher Davenport
  • Yilin Wei
  • Zelenya
  • Andrzej Sołtysik
  • Kenji Yoshida
  • Akhtyam Sakaev
  • Felix Mulder
  • Frank S. Thomas
  • Gavin Bisesi
  • Kazuhiro Sera
  • Keir Lawson
  • Luciano Joublanc

v0.10.6

07 Sep 12:29
Compare
Choose a tag to compare

For cats 1.1.0 and cats-effect 0.10.

This is the seventh release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Changes include:

  • Fixed a bug in merge and concurrently related to finalizer ordering and error propagation (#1187)
  • Added Stream.fromEither and Pull.fromEither (#1225)
  • Fixed compilation on Java 9 (#1198)
  • Fixed a bug in Segment which tested for an empty chunk via equals, resulting in surprising performance (#1201)
  • Added docs to observe and observe1 about their relative performance (#1178)
  • Fixed a bug in groupAdjacentBy (#1163)
  • Optimized Chunk.{seq, apply} (#1159)

Special thanks to contributors:

v0.10.5

01 Jun 12:56
Compare
Choose a tag to compare

For cats 1.1.0 and cats-effect 0.10.

This is the sixth release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Changes include:

  • Fixed a memory leak when combining early termination pulls with infinite / long-lived streams (#1151 #1154 #1155)
  • Added mapAsync and mapAsyncUnordered (#1133)
  • Fixed bug where zipping bracketed streams resulted in error (#1130 #1131 #1134)
  • Added covaryId[F] to convert from a Stream[Id, O] to Stream[F, O] (#1138)
  • Added Functor and Applicative instances for Signal (#1139)
  • Added Sink.either (#1148)
  • Fixed OSGi metadata (#1127)

Special thanks to contributors:

v0.10.4

26 Apr 02:28
Compare
Choose a tag to compare

For cats 1.1.0 and cats-effect 0.10.

This is the fifth release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Fixes include:

  • Optimized bracket and eval_ (#1114)
  • Fixed a bug in scope management that would result in an exception with message Outer scope is closed during inner stream startup (#1121)
  • Added evalMapAccumulate (#1123)
  • Fixed bug in Ref#access (#1125)
  • Added .to[C] syntax for compiling a stream (#1126)

Special thanks to contributors:

v0.10.3

20 Mar 19:41
Compare
Choose a tag to compare

For cats 1.1.0 and cats-effect 0.10.

This is the fourth release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Fixes include:

  • Fixed a bug that would result in a StackOverflowException and memory leak for certain stream shapes (#1107)
  • Fixed a bug that would result in certain streams failing with an exception about a duplicate scope closure (#1096)
  • Fixed a bug that would result in a ClassCastException when zipping translated streams (#1099)
  • Improved performance of Chunk#{take, drop} (#1105)
  • Fixed a bug in observe that was causing early cleanup of resources (#1106)
  • Documentation fixes (#1093 #1094)
  • Upgraded to latest cats and cats-effect releases

Thanks to contributors:

@AdamChlupacek
@pchlupacek
@SystemFw
@zaneli
@gvolpe
@guersam
@jmcardon

v0.10.2

17 Feb 15:40
Compare
Choose a tag to compare

For cats 1.0.1 and cats-effect 0.8.

This is the third release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Fixes include:

  • Fixed a scope bug where zipping scoped streams could result in an exception (#1083 #1084)
  • Fixed a bug in take where certain segment shapes could result in more than the requested number of elements (#1089 #1090)
  • Added more type class instances for Catenable (#1085)

Thanks to contributors:

@pchlupacek
@SystemFw
@AdamChlupacek

v0.10.1

05 Feb 23:39
Compare
Choose a tag to compare

For cats 1.0.1 and cats-effect 0.8.

This is the second release in the 0.10 series. This release is fully backwards compatible with 0.10.0.

Fixes include:

Thanks to contributors:

v0.10.0

31 Jan 00:12
Compare
Choose a tag to compare

For cats 1.0.1 and cats-effect 0.8.

This is the first official release of the 0.10 series, featuring a direct dependency on cats and cats-effect, significant performance improvements, and a much simpler API.

If upgrading from FS2 0.9, be sure to check out the migration guide for 0.10.

For those that were tracking 0.10 milestones, this build is completely compatible with 0.10.0-RC2.