async
Run IO operations asynchronously and wait for their results (by simonmar)
streamly
High performance, concurrent functional programming abstractions (by composewell)
async | streamly | |
---|---|---|
3 | 8 | |
324 | 888 | |
0.0% | 0.7% | |
3.6 | 9.6 | |
6 months ago | 11 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
async
Posts with mentions or reviews of async.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-06-30.
-
Haskell FFI call safety and garbage collection
Here is a "bug" report that describes an example of such behavior: https://github.com/simonmar/async/issues/93
-
ki 1.0.0: a lightweight structured concurrency library
Are you referring to this? https://github.com/simonmar/async/issues/128
-
Rust async is colored, and that’s not a big deal
What do you mean by that? Blocking functions (without any yield points) certainly exist in Haskell, unless one uses -fno-omit-yields (see here).
streamly
Posts with mentions or reviews of streamly.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-25.
-
[ANN] Haskell Streamly 0.9.0 Release!
https://github.com/composewell/streamly/issues/1307 seems related, but it was a long time ago. We weren't heavy users anyway, so our streaming philosophy is now "conduit if it's simple and plugging into a conduit-using library, streaming if you're doing complicated things".
-
Parallel streaming in Haskell: Part 3 - A parallel work consumer
Interesting! Which of the streamly modules is implementing that part? Is it one of the workLoop implementations in Streamly.Internal.Data.Stream.Async?
-
Haskell Libraries I Love
I want to like streamly, but the API is so huge, yet I feel like I'm doing things on a too low level of abstraction. (And as long as it needs a ghc plugin I doubt it'll become the de facto standard.) Though maybe I just haven't used it enough. It does have great docs at https://streamly.composewell.com/ and they seem to be taking both performance, dependency weight and API design quite seriously.
- Edward Kmett reflects on the benefits of Haskell as a functional programming language - especially at scale.
-
oath: Composable Concurrent Computation Done Right
You missed streamly in your list of alternatives: https://github.com/composewell/streamly/blob/master/docs/streamly-vs-async.md
- It's nice to see how Streamly has now become its own separate beast
What are some alternatives?
When comparing async and streamly you can also consider the following projects:
throttle-io-stream - Throttler between a producer and a consumer function
conceit - Concurrently + Either
theatre - Minimalistic actor library for Haskell
haxl - A Haskell library that simplifies access to remote data, such as databases or web-based services.
async-combinators
stm-conduit - STM-based channels for conduits.