Arrow 0.10.5 is now available
Arrow 0.10.5 is now available. This is the last planned release for the
0.10.x series and includes many bug fixes and a few new features which we will highlight below. Additionally, Arrow’s website and the Github project have also undergone some heavy re-reorganization.
If you’re new to Arrow, it’s a group of open-source libraries that empower pure functional programming in Kotlin.
The mono-repo was a blocking point for the future of Arrow, and some changes couldn’t be implemented because all of the libraries were grouped as a single project. For instance, changes related to type checking.
The multi-repo organization introduces some challenges with breaking changes in several Arrow libraries that are counteracted with global checks after merging changes and a development environment to check crossed changes. However, the benefits of having Arrow’s libraries singled out will allow for the implementation of improvements in type management that will take Arrow to the next level.
Idiomatic FP in Kotlin
In this patch release, we’ve deprecated some public APIs in favor of aligning them with names from the Kotlin Standard Library.
Arrow Core, serving as the heart of Arrow, is the most stable and doesn’t include many changes. Most noteworthy are the new user-friendly
Show implementations that allow users to compose their own implementations and the deprecation of the current
Check the changelog for the complete list of bug fixes and improvements.
The latest release of Arrow Fx includes two brand new features:
- A lightweight async FIFO
Queuefor holding arbitrary values that works for all types that support
Scheduleallows you to define and compose powerful yet straightforward policies, which can be used to either repeat or retry effects.
Both are fully documented and can be found in the Arrow Fx Docs.
Arrow Fx - KotlinX integration module
Arrow Fx now includes an integration module for KotlinX Coroutines for interoperability with structured concurrency’s
The next minor release,
, will introduce IO<E, A>
, which is currently available on the 0.11.0-SNAPSHOT`.
Additionally, this reorganization allows us to more easily introduce the long-awaited Arrow Meta into Arrow.
For a full list of changes and features in 0.10.5, please visit the official changelog.
We would like to give special thanks to the following contributors for this version (in no particular order):
- Alberto Ballano
- Daniel Montoya
- Rachel Carmena
- Simon Vergauwen
- Antonio Mateo
- Maureen Elsberry
- Juan Valencia
- Francisco Díaz
- Imran Settuba
- Jason McClellan
For a full list of the contributors who have helped Arrow get to where it is today, please check out: Arrow Contributors. We’re always looking for additional help; please view the guidelines for contributing and take a look at the help-wanted issues. All levels are welcome, and we offer 1:1 mentoring through Arrow’s Slack and Gitter channels.
If you would like to support Arrow, but don’t have the time to invest in contributing, consider picking up some Arrow swag! All proceeds are invested back into advancing the library.
- Arrow on Twitter
- Arrow on Gitter
- #Arrow on Kotlin Slack
- Arrow Presentations Playlist
- Functional Programming in Kotlin with Arrow web series
The active development of Arrow is proudly sponsored by 47 Degrees, a Functional Programming consultancy with a focus on the Kotlin, Scala, Haskell, and Swift programming languages.
Need Help with your projects?
47 Degrees offers the following services around Kotlin and Arrow:
Our team is pleased to offer many comprehensive online training courses (as well as on-site once the world is safe again), as well as customized opportunities to ramp up your team. View our training opportunities.
Our team is comprised of many of the creators and maintainers of the Arrow library. We’re pleased to be able to offer commercial support with the integration and maintenance of Arrow in your technology stack.
If you’re interested in learning more about any of our services, reach out, and we’ll be happy to discuss how we can help with your project or needs.