collapse-util alternatives and similar packages
Based on the "Concurrency" category.
Alternatively, view collapse-util alternatives based on common mentions on social networks and blogs.
-
haxl
A Haskell library that simplifies access to remote data, such as databases or web-based services. -
streamly
High performance, concurrent functional programming abstractions -
chaselev-deque
A collection of different packages for CAS based data structures. -
unagi-chan
A haskell library implementing fast and scalable concurrent queues for x86, with a Chan-like API -
lifted-threads
lifted IO operations from the threads library -
libcspm
The library FDR3 uses for parsing, type checking and evaluating machine CSP. -
cspmchecker
The library FDR3 uses for parsing, type checking and evaluating machine CSP. -
lifted-async
Run lifted IO operations asynchronously and wait for their results -
speculation
Safe, programmable, speculative evaluation for Haskell -
threads-supervisor
Simple, IO-based Haskell library for Erlang-inspired thread supervisors -
concurrent-machines
Concurrency features for the Haskell machines package -
concurrent-supply
A fast globally unique variable supply with a pure API -
sirkel
Sirkel; a Chord DHT in haskell. Node failure, replication and batteries included! -
slave-thread
A principal solution to ghost threads and silent exceptions -
thread-supervisor
A simplified implementation of Erlang/OTP like supervisor for GHC thread -
timers
Simple package that implements timers. Both "one-shot" and "repeating" timers are implemented. -
split-channel
Control.Concurrent.Chan split into sending and receiving halves. -
token-bucket
Haskell rate limiter library using lazy token bucket algorithm -
concurrent-hashtable
A thread-safe hash table in Haskell -
unagi-bloomfilter
A fast, cache-efficient, concurrent bloom filter in Haskell
Access the most powerful time series database as a service
Do you think we are missing an alternative of collapse-util or a related project?
README
collapse
This utility exists to be placed inside an inotifywait loop. Frequently, all you care about is that a change has happened in your project, and you have some app-specific way of determining what needs to be done (whether that is make, cabal, or something else.)
What you do need is to only have one notification come through. This is what collapse is for.
It is a utility I wish did not have to exist: if you find a way of doing it using available bash tools, please let me know and I will happily junk this.
Usage
I use this with Haskell projects.
given a Haskell project with a cabal test Hspec target named "tests", I run this at the top level:
((inotifywait -m -r . -e CLOSE_WRITE |grep --line-buffered '\.hs$' | grep -v --line-buffered flymake | collapse | while read x; do
echo ":reload\n:main --rerun" ;
done) &
export IJOB=$! ;
cat -;
pkill -TERM -P $IJOB) | cabal repl tests
Along with some forthcoming changes to hspec to do with behaviour of main --rerun when tests go from failing to correct, this will run only the currently failing tests. It is also very fast, as an interpreter stays open, meaning no time is taken in running cabal setup code or linking.