Skip to content

Releases: typelevel/fs2

v1.0.2

04 Dec 17:15

Choose a tag to compare

This is the third release in the 1.0 series. This release addresses an incompatibility where FS2 1.0.1 would throw NoSuchMethodErrors when run on Java 8. Otherwise, this release is identical to 1.0.1.

Fixed:

  • Java 8 compatibility (#1357)

v1.0.1

03 Dec 16:49

Choose a tag to compare

This is the second release of the FS2 1.0.x series. This is a bug fix release and is fully backwards compatible with 1.0.0. The following fixes are included:

  • Upgraded to cats 1.5.0 and cats-effect 1.1.0
  • Changed fs2.io.{tcp,udp} packages to use Concurrent[F] and ContextShift[F] instead of ConcurrentEffect[F] (#1322 #1356)
  • Changed Stream#map to always be lazy (#1335)
  • Improved performance of Queue#dequeue1 (#1302)
  • Added bracketCancellable (#1317)
  • Fixed leak in groupWithin (#1312)
  • Fixed stall in parEvalMap (#1311)
  • Fixed leak in Queue#get (#1308)
  • Added metered combinator (#1294)
  • Added spawn combinator (#1291)

For a full list of changes, see: https://github.com/functional-streams-for-scala/fs2/issues?utf8=✓&q=is%3Aclosed+milestone%3A1.0.1+

Thanks to the following contributors:

git shortlog -sn --no-merges "v1.0.0".."v1.0.1"
    33  Michael Pilquist
    11  Diego E. Alonso-Blas
    11  fabio-labella
     9  Scala steward
     3  Vladimir Pavkin
     3  Jakub Kozłowski
     2  Viktor Lövgren
     2  Christopher Poenaru
     2  Pierre Ricadat
     1  Luciano
     1  Diego E. Alonso Blas
     1  Fabio Labella
     1  Igor Tovstopyat-Nelip
     1  Karol Czulkowski
     1  Ajay Chandran
     1  Pavel Chlupacek
     1  dd

v1.0.0

05 Oct 14:38

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

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

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

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

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

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

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

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