Deadpool for Lapin Latest Version

Deadpool is a dead simple async pool for connections and objects of any type.

This crate implements a deadpool manager for lapin.

Features

| Feature | Description | Extra dependencies | Default | | ------- | ----------- | ------------------ | ------- | | config | Enable support for config crate | config, serde/derive | yes |

Example

```rust,ignore use deadpoollapin::{Config, Manager, Pool }; use deadpoollapin::lapin::{ options::BasicPublishOptions, BasicProperties };

[tokio::main]

async fn main() { let mut cfg = Config::default(); cfg.url = Some("amqp://localhost/%2f".tostring()); let pool = cfg.createpool(); for i in 1..10usize { let mut connection = pool.get().await.unwrap(); let channel = connection.createchannel().await.unwrap(); channel.basicpublish( "", "hello", BasicPublishOptions::default(), b"hello from deadpool".to_vec(), BasicProperties::default() ).await.unwrap(); } } ```

Example with config and dotenv crate

```rust use deadpool_lapin::lapin::{ options::BasicPublishOptions, BasicProperties }; use dotenv::dotenv; use serde::Deserialize;

[derive(Debug, Deserialize)]

struct Config { #[serde(default)] amqp: deadpool_lapin::Config }

impl Config { pub fn fromenv() -> Result { let mut cfg = ::configcrate::Config::new(); cfg.merge(::configcrate::Environment::new().separator(""))?; cfg.tryinto() } }

[tokio::main]

async fn main() { dotenv().ok(); let cfg = Config::fromenv().unwrap(); let pool = cfg.amqp.createpool(); for i in 1..10usize { let mut connection = pool.get().await.unwrap(); let channel = connection.createchannel().await.unwrap(); channel.basicpublish( "", "hello", BasicPublishOptions::default(), b"hello from deadpool".to_vec(), BasicProperties::default() ).await.unwrap(); } } ```

License

Licensed under either of

at your option.