tarantool-rs

Crates.iotarantool-rs
lib.rstarantool-rs
version0.0.10
sourcesrc
created_at2023-05-14 21:43:03.523443
updated_at2023-10-03 20:54:18.627118
descriptionAsyncronous tokio-based client for Tarantool
homepage
repositoryhttps://github.com/Flowneee/tarantool-rs
max_upload_size
id864497
size224,849
Andrei Kononov (Flowneee)

documentation

README

tarantool-rs - Asyncronous Tokio-based client for Tarantool (WIP)

Crates.io docs.rs CI

tarantool-rs - asyncronous Tokio-based client for Tarantool.

Documentation available on docs.rs.

Supported Traantool versions

Supported and tested Tarantool versions:

  • 2.10.x;
  • 2.11.x.

Other (especially newer) should work as well, but not tested. Versions below 2.10.x doesn't have transactions support, so transaction API won't work.

Example

If you have clients space with 2 "columns": id and name:

let conn = Connection::builder().build("127.0.0.1:3301").await?;
let space = conn.space("clients").await?.expect("clients space exists");
space.insert((1, "John Doe")).await?;
let clients = space.select::<(i64, String), _>(None, None, Some(IteratorType::All), ()).await?;

For more examples of how to use this crate check examples/ folder.

Features

  • authorization

  • evaluating Lua expressions

  • remote function calling

  • CRUD operations

  • transaction control (begin/commit/rollback)

  • reconnection in background

  • SQL requests

  • chunked responses

  • watchers and events

  • connection pooling

  • automatic schema fetching and reloading

  • graceful shutdown protocol support

  • pre Tarantool 2.10 versions support

  • customizable connection features (streams/watchers/mvcc)

  • custom Tarantool MP types (UUID, ...)

  • ...

Commit count: 67

cargo fmt