CouchDB support library for the r2d2 connection pool. Read the documentation.
extern crate r2d2;
extern crate r2d2_couchdb;
extern crate serde_json;
use r2d2_couchdb::{CouchdbConnectionManager};
use std::thread;
fn main() {
let config = r2d2::Config::default();
let manager = CouchdbConnectionManager::new("http://localhost:5984/").unwrap();
let pool = r2d2::Pool::new(config, manager).unwrap();
let mut handles = vec![];
for i in 0..20 {
let pool = pool.clone();
handles.push(thread::spawn(move || {
let content = serde_json::builder::ObjectBuilder::new()
.insert("foo", i)
.unwrap();
println!("Sending {}", &content);
let conn = pool.get().unwrap();
conn.create_document("/test", &content).run().unwrap();
}));
}
for handle in handles {
handle.join().unwrap()
}
}