Use bb8 (pool manager for async connections) with Tiberius (MSSQL driver for Rust).
```rust use bb8tiberius::{ConnectionManager, Error, PoolExt}; use futures::future::Future; use futuresstate_stream::StateStream;
let fut = { let connstr = std::env::var("DBCONN")?;
futures::future::lazy(|| {
let pool =
bb8::Pool::builder().max_size(10).build_unchecked(ConnectionManager(conn_str));
let rt = pool.run_wrapped(|conn| {
conn.simple_query("SELECT @@version")
.map_err(Error::from)
.map(|row| {
let val: &str = row.get(0);
String::from(val)
})
.collect()
});
rt.map(|x| println!("{}", x.join(", "))).map_err(|_| ())
})
};
tokio::run(fut); ```