MIT licensed Version Downloads

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.

Documentation link

Crates.io link

Example

```rust 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> { let addr = "127.0.0.1:3301".parse()?; let conn: Arc = Connector::new(addr) .connect().await?;

let evalresp: (u32, u32) = conn.eval(Eval { expr: "return 1, 2".into(), args: ().intotuple(), }).await?;

let selectresp: Vec<(u32, u32, u32)> = conn.select(Select { spaceid: 512, indexid: 0, limit: 100, offset: 0, iterator: Iterator::Ge, keys: ( 1u64, ).intotuple(), }).await?;

let (respwithtimeout,): (i32,) = timeout( Duration::fromsecs(1), conn.call(Call { function: "echo".into(), args: ( 123, ).intotuple(), }) ).await??;

Ok(()) }

```

Auth

rust 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

rust 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?;