COMPOSEWELL TECHNOLOGIES
BLOG
Posts and announcements for all things Composewell, including new streamly releases, performance notes, and notes on general haskell topics.

Composewell builds Streamly and other open-source Haskell libraries. We also offer consulting and training in Haskell and high-performance functional programming. Learn more at composewell.com.


05 Sep 2025
Adithya Kumar
Announcing streamly-0.11.0 and streamly-core-0.3.0

streamly-0.11.0 and streamly-core-0.3.0 are now available on Hackage. User guides, combined reference and Hoogle search across all Streamly ecosystem packages can be found on the Streamly website.

Important features in this release are:

  • Scans with Scanl: The new Streamly.Data.Scanl module allows you to compose multiple stateful transformations (i.e. scans) on a stream. You can split a stream into multiple constituent streams, process each independently, and then merge the results. With Streamly.Data.Scanl.Prelude, you can compose concurrent scans i.e. each branch of the split scan can run in a different thread.

  • New concurrent fold combinators: Extended Streamly.Data.Fold.Prelude with some powerful concurrent fold combinators.

  • Deterministic resource cleanup: Introduced APIs that guarantee timely resource release, eliminating reliance on GC-based cleanup. The library now offers low-level IO primitives and high-level stream combinators for resource management — everything you can do with resourcet, and more, is built in.

  • Fair nesting of streams: Added operations that interleave inner and outer streams fairly, ensuring balanced exploration. Particularly powerful for logic programming.

  • Circular buffers: Added Streamly.Data.RingArray, a high-performance, unboxed circular buffer.

  • File system paths: Streamly.FileSystem.Path module leverages streamly arrays, and streams for performance and flexibility, provides better safety, and is intended for gradual type safe extensions in future. The type can be directly coerced into OsPath.

  • streamly-text package provides coercion from the Text type to streamly Array type and vice-versa.

  • streamly-fsevents package provides file system event watch streams (fsnotify) — portable as well as full support for low level OS specific file system event APIs. This was earlier part of the streamly package, now has been split into a separate package.

We’ve made every effort to prevent breaking changes, and the API has remained stable since version 0.9.0.

See the following docs for more details:

All rights reserved, Composewell Technologies