poolio
A simple, safe, and fast thread pool based on pure message-passing concurrency that defies the mainstream.
- simplicity:
- small API
- less than 300 lines of code
- safety:
- no dependencies (apart from crossbeam)
- thoroughly tested
- memory-safety: no
unsafecode - thread-safety:
- no data races
- no deadlocks
- performance:
- crossbeam channels
- as fast as the most popular Rust threadpool (see Benchmarks)
For documentation, see the Released API docs. In particular, you can find design and usage descriptions there.
Benchmarks
The benchmarks pit poolio against threadpool in a test of computing various lists of primes and writing them to a sink. On an Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (6 cores, 12 threads) running x86_64 GNU/Linux, we measured the following average execution times:
| Primes | poolio | threadpool |
|---|---|---|
| 6 workers | 27.468 ms | 28.431 ms |
| 12 workers | 24.056 ms | 23.456 ms |
This suggests that poolio and threadpool are equally performant. The full results can be downloaded here. (The benchmarks are powered by criterion.)
Contributing
If you want to contribute: CONTRIBUTING.
Security
For security-related issues, see: SECURITY.