Arrow 0.10.5 is now available

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.

Re-org

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

Our goal for Arrow is to make Functional Programming in Kotlin as user-friendly as possible. We try to do so with elegant DSLs like those you can find in Arrow Optics and Arrow Fx DSL.

In this patch release, we’ve deprecated some public APIs in favor of aligning them with names from the Kotlin Standard Library.

Arrow Core

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 ap signature.

Check the changelog for the complete list of bug fixes and improvements.

Arrow Fx

The latest release of Arrow Fx includes two brand new features:

  • A lightweight async FIFO Queue for holding arbitrary values that works for all types that support Concurrent.
  • Schedule allows 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 CoroutineScope.

You can learn more about that module in a post from Jorge Castillo: IO integration with kotlinx.coroutines.

Upcoming

The next minor release, 0.11.0, 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):

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.

Resources:

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:

Consulting:

If you’re interested in hearing how Kotlin and Arrow can transform your technology stack, learn more about our consulting engagements.

Training:

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.

Arrow Support:

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.

Ensure the success of your project

47 Degrees can work with you to help manage the risks of technology evolution, develop a team of top-tier engaged developers, improve productivity, lower maintenance cost, increase hardware utilization, and improve product quality; all while using the best technologies.