fusion-plugin
GHC plugin to make stream fusion more predictable (by composewell)
streamly
High performance, concurrent functional programming abstractions (by composewell)
fusion-plugin | streamly | |
---|---|---|
2 | 8 | |
16 | 848 | |
- | 0.5% | |
3.7 | 9.6 | |
6 months ago | 8 days ago | |
Haskell | Haskell | |
Apache License 2.0 | 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.
fusion-plugin
Posts with mentions or reviews of fusion-plugin.
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!
Our goal is to completely fuse the loops in a fused stream pipeline. fusion-plugin https://github.com/composewell/fusion-plugin ensures that these loops get fused completely, if they don't, it reports that it did not fuse (reporting can be made better though). In most cases (for almost all cases for which we have benchmarks, and we have a lot of benchmarks) these loops fuse.
-
High-Performance Haskell?
If you want to get stream-fusion in base then I think you should first try to get https://github.com/composewell/fusion-plugin in GHC. It takes care of most of the optimization corner cases that you will invariably run into if you want to use stream-fusion reliably.
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 fusion-plugin and streamly you can also consider the following projects:
streamly-examples - Examples for Streamly
stm-conduit - STM-based channels for conduits.
thyme - A faster date and time library based on time
pipes-concurrency - Concurrency for the pipes ecosystem
restricted-workers - Interactive-diagrams
conceit - Concurrently + Either
haxl - A Haskell library that simplifies access to remote data, such as databases or web-based services.
lvish - The LVish Haskell library
async - Run IO operations asynchronously and wait for their results
ctrie - Non-blocking concurrent hashmap for Haskell
lifted-async - Run lifted IO operations asynchronously and wait for their results
unagi-chan - A haskell library implementing fast and scalable concurrent queues for x86, with a Chan-like API