tk_pool/lib.rs
1//! A connection pool implementation for tokio
2//!
3//! [Documentation](https://docs.rs/tk-pool) |
4//! [Github](https://github.com/tailhook/tk-pool) |
5//! [Crate](https://crates.io/crates/tk-pool) |
6//! [Examples](https://github.com/tailhook/tk-pool/tree/master/examples)
7//!
8//! A connection pool implementation for tokio. Main features:
9//!
10//! 1. Works for any request-reply protocol (actually for any `Sink`)
11//! 2. Provides both queue and pushback if needed
12//! 3. Allows pipelining (multiple in-flight request when multiplexing)
13//! 4. Auto-reconnects on broken connection
14//! 5. Adapts when DNS name change
15//!
16//! Multiple load-balancing strategies are in to do list.
17//!
18//! # Example
19//!
20//! ```rust,ignore
21//!
22//! let mut pool =
23//! pool_for(|addr| connect(addr))
24//! .connect_to(ns.subscribe_many(address, default_port))
25//! .lazy_uniform_connections(2)
26//! .with_queue_size(10)
27//! .spawn_on(&core.handle());
28//!
29//! ```
30//!
31#[macro_use] extern crate log;
32extern crate abstract_ns;
33extern crate futures;
34extern crate rand;
35extern crate tokio_core;
36extern crate void;
37
38mod connect;
39mod basic;
40pub mod queue;
41pub mod error_log;
42pub mod metrics;
43pub mod uniform;
44pub mod config;
45
46pub use basic::pool_for;
47pub use connect::Connect;