[ANN] Announcing streamly-0.11.0 and streamly-core-0.3.0
Adithya Kumar <[email protected]> Sun, 28 Sep 2025 14:41:06 +0530
| Newsgroups | gmane.comp.lang.haskell.general |
|---|---|
| Message-ID | <CAMh=VinOZhq0WZY3aobPit2kYgHiE6=EEpjyO8DGRBXu8sSF_w@mail.gmail.com> |
--===============6698278977332094753== Content-Type: multipart/alternative; boundary="000000000000cc8f09063fd8e66b" --000000000000cc8f09063fd8e66b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable streamly-0.11.0 and streamly-core-0.3.0 <https://github.com/composewell/streamly> are now available on Hackage. Use= r guides <https://streamly.composewell.com/streamly-0.11.0/Tutorials/why-haskell-str= eamly.html>, combined reference and Hoogle search <https://streamly.composewell.com/search.html?query=3D&ecosystem=3Dstreamly= -0.11.0-ecosystem.hoo> across all Streamly ecosystem packages can be found on the Streamly website <https://streamly.composewell.com/index.html>. Important features in this release are: - *Scans with Scanl*: The new Streamly.Data.Scanl <https://streamly.composewell.com/haddocks/streamly-core-0.3.0/Streamly-= Data-Scanl.html> module allows you to compose multiple stateful transformations (i.e. sca= ns) 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 <https://streamly.composewell.com/haddocks/streamly-0.11.0/Streamly-Data= -Scanl-Prelude.html>, 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 <https://streamly.composewell.com/haddocks/streamly-0.11.0/Streamly-Data= -Fold-Prelude.html> 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 =E2=80=94 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 powerf= ul for logic programming. - *Circular buffers*: Added Streamly.Data.RingArray <https://streamly.composewell.com/haddocks/streamly-core-0.3.0/Streamly-= Data-RingArray.html>, a high-performance, unboxed circular buffer. - *File system paths*: Streamly.FileSystem.Path <https://streamly.composewell.com/haddocks/streamly-core-0.3.0/Streamly-= FileSystem-Path.html> module leverages streamly arrays, and streams for performance and flexibility, provides better safety, and is intended for gradual type sa= fe 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) =E2=80=94 portable as well as full support for low level OS s= pecific file system event APIs. This was earlier part of the streamly package, n= ow has been split into a separate package. We=E2=80=99ve made every effort to prevent breaking changes, and the API ha= s remained stable since version 0.9.0. See the following docs for more details: - streamly-core changelog <https://streamly.composewell.com/streamly-core-0.3.0/Changelog.html> and full API diff from streamly-core 0.2.2 to 0.3.0 <https://streamly.composewell.com/streamly-core-0.3.0/ApiChangelogs/0.2.= 2-0.3.0.html> - streamly changelog <https://streamly.composewell.com/streamly-0.11.0/Project/Changelog.html= > and full API diff from streamly 0.10.1 to 0.11.0 <https://streamly.composewell.com/streamly-0.11.0/Project/ApiChangelogs/= 0.10.1-0.11.0.html> Please visit our blog <https://blog.composewell.com/> for the latest updates! --000000000000cc8f09063fd8e66b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div style=3D"font-family:Verdana,Arial,Helvetica,sans-ser= if;font-size:10pt"><div><p><a href=3D"https://github.com/composewell/stream= ly" target=3D"_blank">streamly-0.11.0 and streamly-core-0.3.0</a> are now a= vailable on Hackage. <a href=3D"https://streamly.composewell.com/streamly-0= .11.0/Tutorials/why-haskell-streamly.html" target=3D"_blank">User guides</a= >, <a href=3D"https://streamly.composewell.com/search.html?query=3D&eco= system=3Dstreamly-0.11.0-ecosystem.hoo" target=3D"_blank">combined referenc= e and Hoogle search</a> across all Streamly ecosystem packages can be found= on the <a href=3D"https://streamly.composewell.com/index.html" target=3D"_= blank">Streamly website</a>.<br></p><p>Important features in this release are:<br></p><ul><= li><p style=3D"margin-top:0px"><b>Scans with <code>Scanl</code></b>: The ne= w <a href=3D"https://streamly.composewell.com/haddocks/streamly-core-0.3.0/= Streamly-Data-Scanl.html" target=3D"_blank">Streamly.Data.Scanl</a> 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 <a hr= ef=3D"https://streamly.composewell.com/haddocks/streamly-0.11.0/Streamly-Da= ta-Scanl-Prelude.html" target=3D"_blank">Streamly.Data.Scanl.Prelude</a>, you can compose concurrent scans i.e. each branch of the split scan can run in a different thread.<br></p></li><li><p style=3D"margin-top:0px"><b>N= ew concurrent fold combinators</b>: Extended <a href=3D"https://streamly.co= mposewell.com/haddocks/streamly-0.11.0/Streamly-Data-Fold-Prelude.html" tar= get=3D"_blank">Streamly.Data.Fold.Prelude</a> with some powerful concurrent= fold combinators.<br></p></li><li><p style=3D"margin-top:0px"><b>Determini= stic resource cleanup</b>: 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 =E2=80=94 everything you can do with <c= ode>resourcet</code>, and more, is built in.<br></p></li><li><p style=3D"ma= rgin-top:0px"><b>Fair nesting of streams</b>: Added operations that interle= ave inner and outer streams fairly, ensuring balanced exploration. Particularly powerful for logic programming.<br></p></li><li><p style=3D"margin-top:0px"= ><b>Circular buffers</b>: Added <a href=3D"https://streamly.composewell.com= /haddocks/streamly-core-0.3.0/Streamly-Data-RingArray.html" target=3D"_blan= k">Streamly.Data.RingArray</a>, a high-performance, unboxed circular buffer.<br></p></li><li><p style=3D"ma= rgin-top:0px"><b>File system paths</b>: <a href=3D"https://streamly.compose= well.com/haddocks/streamly-core-0.3.0/Streamly-FileSystem-Path.html" target= =3D"_blank">Streamly.FileSystem.Path</a> 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.<br= ></p></li><li><p style=3D"margin-top:0px"><b>streamly-text</b> package prov= ides coercion from the <code>Text</code> type to streamly <code>Array</code> type and vice-versa.<br></p></li><li><p style= =3D"margin-top:0px"><b>streamly-fsevents</b> package provides file system e= vent watch streams (fsnotify) =E2=80=94 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.<br></p></li></ul><p>We= =E2=80=99ve made every effort to prevent breaking changes, and the API has = remained stable since version 0.9.0.<br></p><p>See the following docs for more detai= ls:<br></p><ul><li><a href=3D"https://streamly.composewell.com/streamly-cor= e-0.3.0/Changelog.html" target=3D"_blank">streamly-core changelog</a> and <a href=3D"https://streamly.composewell.com/streamly-core= -0.3.0/ApiChangelogs/0.2.2-0.3.0.html" target=3D"_blank">full API diff from= streamly-core 0.2.2 to 0.3.0</a><br></li><li><a href=3D"https://streamly.composewell.com/streamly-= 0.11.0/Project/Changelog.html" target=3D"_blank">streamly changelog</a> and <a href=3D"https://streamly.composewell.com/streamly-0.11= .0/Project/ApiChangelogs/0.10.1-0.11.0.html" target=3D"_blank">full API dif= f from streamly 0.10.1 to 0.11.0</a><br></li></ul><p>Please visit our <a href=3D"https://blog.compose= well.com/" target=3D"_blank">blog</a> for the latest updates!<br></p></div>= </div><br></div> --000000000000cc8f09063fd8e66b-- --===============6698278977332094753== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Haskell mailing list -- [email protected] To unsubscribe send an email to [email protected] --===============6698278977332094753==--