Skip to content

Rust thread pool library offering two task scheduling modes with optional priority scheduling and metrics collection.

License

Notifications You must be signed in to change notification settings

ndranathunga/multipool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multipool

rustc License Crates.io Docs

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

Feedback

If you encounter any issues or have feature requests, please open an issue in the GitHub repository issues.

About

Rust thread pool library offering two task scheduling modes with optional priority scheduling and metrics collection.

Resources

License

Stars

Watchers

Forks

Languages