Skip to content

Releases: zio/zio

2.0.0-RC2

25 Jan 23:59
6639501
Compare
Choose a tag to compare

This release contains bug fixes and additional features to make it easier than ever to upgrade to ZIO 2, including new ZPipeline constructors that let you convert any transducer into a pipeline. This is also the first release in which ZIO Mock has been moved into its own project. Check out the new repository here if you are using it in your tests.

We expect that all major ZIO ecosystem libraries will be able to publish versions supporting RC2 shortly after it is released, allowing users to begin testing their applications on ZIO 2 if they are not already doing so. Thank you as always for your support and please continue to share your feedback as we drive towards the final release of ZIO 2!

2.0.0-RC1

14 Dec 19:06
919b5f8
Compare
Choose a tag to compare

We are excited to bring you the first release candidate of ZIO 2.0!

When we announced the first milestone release of ZIO 2.0 we said we wanted to focus on four key areas: (1) performance, (2) ergonomics, (3) operations, and (4) streaming.

We are proud to have delivered on all of these and more.

  • Performance - ZIO is faster than ever with a new fiber aware scheduler and optimized runtime.
  • Ergonomics - ZIO is easier to use than ever with more straightforward names, automatic layer construction, and the deletion of Has.
  • Operations - It is easier than ever to understand what is going on in your ZIO application with built in logging and metrics, execution traces that look like JVM stack traces, and integrated fiber dumps.
  • Streaming - Streams are more powerful than ever with a new channel based encoding that unifies streams and sinks, supporting higher performance implementations along with concurrent data structures such as ZHub.

From here we will be working with all ZIO ecosystem libraries to publish versions for RC1. This will allow users to test their own applications on ZIO 2.0 and resolve any issues before a final release. If you are upgrading to ZIO 2.0 we would encourage you to check out our migration guide here. In particular, it has details on our automated migration tool, which will do most of the work of upgrading your ZIO application for you.

As always, please let us know your feedback, and we hope you enjoy using ZIO 2.0 as much as we have developing it.

1.0.13

14 Dec 17:46
e25b84d
Compare
Choose a tag to compare

What's Changed

Read more

2.0.0-M6-2

20 Nov 13:37
deeae75
Compare
Choose a tag to compare

This release fixes a publishing issue with 2.0.0-M6.

2.0.0-M6-1

20 Nov 08:02
06259b1
Compare
Choose a tag to compare

This release fixes a publishing issue with 2.0.0-M6.

2.0.0-M6

19 Nov 21:46
70fdca8
Compare
Choose a tag to compare

We did it again! We expected 2.0.0-M5 to be the final milestone before publishing a release candidate of ZIO 2.0, but based on breakthrough work to dramatically simplify the environment type we are publishing one more milestone release.

This release deletes the Has data type and builds the ZIO Environment directly into ZIO. This allows us to offer the same power of compositionally building your application's dependencies but without Has, simplifying type signatures and improving teachability. Based on this change we have also reverted the renaming of ZLayer to ZServiceBuilder since this addresses the underlying goal of simplifying dependency injection in a more fundamental way.

Our plan to publish a release candidate in early December remains unchanged. As always thank you for your support and please continue to share your feedback!

2.0.0-M5

13 Nov 15:17
4b44cc4
Compare
Choose a tag to compare

We got so many contributions in the ZIO Hackathon we needed one more milestone to get them all in!

We expect that this will be the last milestone before we publish the first release candidate of ZIO 2.0 and it comes packed with several major new features.

First, rendering of tracing information has been dramatically improved. Traces now look like Java stack traces, so if you know how to read a Java stack trace you know how to read a ZIO trace. This way any tooling you are using to work with Java stack traces today will work with ZIO traces. You shouldn't have to change your infrastructure just because you use an effect system.

Second, this release contains the new channel based stream encoding. While we have striven to maintain a consistent API, under the hood streams and sinks are both implemented as channels, supporting higher performance and reflecting a deep unification that reveals more about the fundamental nature of these data types. Transducers are also gone and have been replaced with pipelines, which represent a stream transformation as a data type.

Third, this release continues our work to improve the ergonomics of providing applications with their required dependencies. We have already taken dramatic steps in this direction with automatic construction of the dependency graph and standardized ways to define services. Now we are improving how we describe building services by renaming ZLayer to ZServiceBuilder. This tells you exactly what it does, it builds one or more of the services that your application needs.

With these changes we have achieved all the features we targeted for ZIO 2.0. From here we expect to publish the first release candidate at the beginning of December, assuming no major issues, and then work to rapidly upgrade the ecosystem in preparation for a final release.

Thank you all for your support as we build the next generation of cloud native programming in Scala and as always please let us know your feedback!

2.0.0-M4

14 Oct 01:10
8241038
Compare
Choose a tag to compare

This fourth milestone release of ZIO 2.0 brings us rapidly closer to realizing our vision of next generation concurrent programming in Scala.

Specifically, this milestone contains a new implementation of execution tracing that dramatically reduces the overhead of collecting traces. Since most production applications use execution tracing this should have a material impact on the performance of some ZIO applications.

In addition, this release contains a new ZPool concurrent data structure that represents a pool of managed resources, for example a connection pool. Users can get a value from the pool, semantically blocking until a resource is available, and all resources will be automatically released when the scope of the pool is closed.

Please let us know your feedback. Assuming there are no major issues with this release we expect to publish the first release candidate of ZIO 2.0 in the next two to three weeks. At that point we will work with all ZIO ecosystem libraries to publish versions for ZIO 2.0 so that users can test their applications on ZIO 2.0. At that time we will also have a Scalafix migration rule which will automate the process of upgrading from ZIO 1.0 to ZIO 2.0.

As always thank you for your support!

2.0.0-M3

20 Sep 19:53
Compare
Choose a tag to compare

This third milestone release of ZIO 2.0 focuses on realizing our vision of next level support for operational concerns, with built in logging and metrics.

See this blog post by @jdegoes for a discussion of the new logging functionality.

For metrics, you can now use ZIOMetric to define metrics such as counters, gauges, and histograms and either call them yourself or apply them to effects as aspects:

import zio._

val countErrors = ZIOMetric.countErrors("my service errors")

handle(request) @@ countErrors

In the future ZIO Metrics will support plugging in one or more metrics backends to automatically send metrics to the service or services you want with a single line of code.

This release candidate also contains a new ZIOApp that lets you combine multiple applications and share layers between them, as well as a ZIOAppDefault to make it even easier to demonstrate and prototype ZIO applications.

object MyApp extends ZIOAppDefault {

  def run = Console.printLine("Hello ZIO!")
}

This release also contains THub, a version of ZHub that can be composed transactionally. So now if you are working with any ZIO data structure and run into a concurrency problem you have trouble solving you can always "upgrade" to the STM version and unblock yourself.

Finally, this release contains a variety of improvements to polish to continue to get us ready for the final release of ZIO 2.0.

As always, thank you for your support and let us know what you think!

1.0.12

20 Sep 20:00
ac9fa35
Compare
Choose a tag to compare

This minor release contains miscellaneous improvements as well as a couple of new stream operators.

ZIO Core

ZIO Stream

ZIO Test