# Tokio Utils
[](https://github.com/wcygan/tokio-utils)
[](https://crates.io/crates/tokio-utils)
[](https://docs.rs/tokio-utils)
[](https://github.com/wcygan/tokio-utils/actions?query=branch%3Amain)
Tools for asynchronous programming in [Tokio](https://tokio.rs/) applications:
#### Resource Pooling
- [Pool](https://docs.rs/tokio-utils/latest/tokio_utils/struct.Pool.html), a shared resource pool.
#### Rate Limiting
- [RateLimiter](https://docs.rs/tokio-utils/latest/tokio_utils/struct.RateLimiter.html), a rate limiter
- [MultiRateLimiter](https://docs.rs/tokio-utils/latest/tokio_utils/struct.MultiRateLimiter.html), a key-based rate limiter
#### Graceful Shutdown
- [ShutdownController](https://docs.rs/tokio-utils/latest/tokio_utils/struct.ShutdownController.html), a controller for graceful shutdown
- [ShutdownMonitor](https://docs.rs/tokio-utils/latest/tokio_utils/struct.ShutdownMonitor.html), a monitor for graceful shutdown
#### Stdin
- [recv_from_stdin](https://docs.rs/tokio-utils/latest/tokio_utils/fn.recv_from_stdin.html), a channel that receives data from stdin
## Usage
Add this to your Cargo.toml:
```toml
[dependencies]
tokio-utils = "0.1.2"
```