Crate alopecosa[−][src]
Expand description
Alopecosa
Alopecosa is a convenient async pure-rust Tarantool 1.6+ connector built on tokio (version 1).
By the way, alopecosa is the kind of tarantula that inhabits in Japan.
Example
use std::{ error::Error, time::Duration, sync::Arc, }; use alopecosa::{ Connection, Connector, IntoTuple, Call, Eval, Select, Iterator }; use tokio::time::timeout; #[tokio::main] async fn main() -> Result<(), Box<dyn Error>> { let addr = "127.0.0.1:3301".parse()?; let conn: Arc<Connection> = Connector::new(addr) .connect().await?; let eval_resp: (u32, u32) = conn.eval(Eval { expr: "return 1, 2".into(), args: ().into_tuple(), }).await?; let select_resp: Vec<(u32, u32, u32)> = conn.select(Select { space_id: 512, index_id: 0, limit: 100, offset: 0, iterator: Iterator::Ge, keys: ( 1u64, ).into_tuple(), }).await?; let (resp_with_timeout,): (i32,) = timeout( Duration::from_secs(1), conn.call(Call { function: "echo".into(), args: ( 123, ).into_tuple(), }) ).await??; Ok(()) }
Auth
let addr = "127.0.0.1:3301".parse()?; let conn: Arc<Connection> = Connector::new(addr) .with_auth("user".into(), "password".into()) .connect().await?;
Connection tuning
let addr = "127.0.0.1:3301".parse()?; let conn: Arc<Connection> = Connector::new(addr) .with_connect_timeout(Duration::from_secs(10)) .with_reconnect_interval(Duration::from_secs(1)) .with_send_request_timeout(Duration::from_secs(10)) .connect().await?;
Re-exports
pub use connection::Connection;
pub use connection::connector::Connector;
pub use iproto::constants::*;
pub use iproto::request;
pub use iproto::request::Body;
pub use iproto::request::Value;
pub use iproto::request::IntoTuple;
pub use iproto::request::Auth;
pub use iproto::request::Select;
pub use iproto::request::Call;
pub use iproto::request::Insert;
pub use iproto::request::Replace;
pub use iproto::request::Update;
pub use iproto::request::Delete;
pub use iproto::request::Eval;
pub use iproto::request::Upsert;
pub use iproto::request::Prepare;
pub use iproto::request::Execute;
pub use iproto::response::*;
pub use iproto::types::Error;