simple-pool

Simple and fast async pool for any kind of resources

The idea

This is a helper library to create custom pools of anything.

Example

```rust use simple_pool::ResourcePool; use std::sync::Arc; use tokio::net::TcpStream; use tokio::sync::RwLock;

async fn test() { // create local or static resource pool let resourcepool: Arc>> = Arc::new(RwLock::new(ResourcePool::new())); let mut pool = resourcepool.write().await; // put 20 tcp connections there for _ in 0..20 { let client = TcpStream::connect("127.0.0.1:80").await.unwrap(); pool.append(client); } drop(pool); let mut fut = Vec::new(); let started = std::time::Instant::now(); let n = 1000000; for _ in 0..n { let respool = resourcepool.clone(); fut.push(tokio::spawn(async move { // gets one of 20 open tcp connections as soon as one is available let client = respool.read().await.get().await; })); } } ```