7 releases
new 0.2.7 | Dec 12, 2024 |
---|---|
0.2.6 |
|
0.1.3 | Dec 11, 2024 |
#214 in Concurrency
1,202 downloads per month
69KB
870 lines
Multipool
Multipool is a Rust library that provides a configurable and efficient thread pool with optional work-stealing capabilities. It allows you to easily spawn tasks and handle concurrent workloads, while also offering a builder API to customize the number of threads and choose between the global queue or the work-stealing mode.
Features
- Configurable Threads: Specify the number of worker threads for concurrent task handling.
- Global Queue or Work-Stealing: Choose between simple global queues or efficient work-stealing for load balancing.
- Priority Scheduling: Assign priorities to tasks for more control over execution order.
- Metrics and Monitoring: Track active threads, queued tasks, running tasks and completed tasks in real-time.
- Macros: Simplify task submission, metrics logging, and thread pool creation with ergonomic macros.
- Typed-State Builder Pattern: The ThreadPoolBuilder ensures that thread pools are built correctly with a strongly-typed API, enforcing valid combinations of features like priority scheduling and work-stealing.
- Graceful Shutdown: Cleanly shut down the thread pool while ensuring that all tasks are completed.
- Customizable Metrics Collector: Integrate your own metrics collection logic for application-specific monitoring and analytics.
Installation
Add multipool
as a dependency in your Cargo.toml
:
[dependencies]
multipool = "0.2"
Documentation
- Crate on crates.io
- API Documentation (with examples)
Feedback
If you encounter any issues or have feature requests, please open an issue in the GitHub repository issues.
Dependencies
~125KB