Popularity
3.4
Declining
Activity
0.0
Stable
6
2
0
Monthly Downloads: 13
Programming language: Haskell
License: MIT License
Tags:
Concurrency
io-throttle alternatives and similar packages
Based on the "Concurrency" category.
Alternatively, view io-throttle 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. -
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-async
Run lifted IO operations asynchronously and wait for their results -
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. -
speculation
Safe, programmable, speculative evaluation for Haskell -
concurrent-machines
Concurrency features for the Haskell machines package -
threads-supervisor
Simple, IO-based Haskell library for Erlang-inspired thread supervisors -
concurrent-supply
A fast globally unique variable supply with a pure API -
slave-thread
A principal solution to ghost threads and silent exceptions -
sirkel
Sirkel; a Chord DHT in haskell. Node failure, replication and batteries included! -
timers
Simple package that implements timers. Both "one-shot" and "repeating" timers are implemented. -
concurrent-hashtable
A thread-safe hash table in Haskell -
token-bucket
Haskell rate limiter library using lazy token bucket algorithm -
split-channel
Control.Concurrent.Chan split into sending and receiving halves.
Less time debugging, more time building
Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
Promo
scoutapm.com
Do you think we are missing an alternative of io-throttle or a related project?
README
io-throttle
Limit the number of tasks started per second. The throttle function will run all actions concurrently but only starting a certain number per second. It will wait for all tasks and return the results in a list.
Example
module Main where
import Control.Concurrent
import Control.Concurrent.Throttle
import Control.Monad
main :: IO ()
main = do results <- throttle 5 tasks
putStrLn $ "------ RESULTS: ------"
forM_ results print
where
tasks = map performTask ([1..100] :: [Int])
performTask i = do putStrLn $ "started task: " ++ show i
threadDelay $ i * 10000
putStrLn $ "task finished: " ++ show i
return i