9 releases

0.0.10 Oct 3, 2023
0.0.9 Sep 23, 2023
0.0.7 Aug 23, 2023
0.0.3 Jul 30, 2023
0.0.2 May 17, 2023

#1398 in Database interfaces

Download history 27/week @ 2024-07-20 16/week @ 2024-07-27 12/week @ 2024-08-03 18/week @ 2024-08-10 2/week @ 2024-08-17 34/week @ 2024-08-24 1/week @ 2024-08-31 39/week @ 2024-09-07 1/week @ 2024-09-14 10/week @ 2024-09-21 24/week @ 2024-09-28 36/week @ 2024-10-05 2/week @ 2024-10-12 15/week @ 2024-10-19 101/week @ 2024-10-26 24/week @ 2024-11-02

153 downloads per month

MIT license

150KB
3.5K SLoC

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, ...)
  • ...

Dependencies

~8–17MB
~214K SLoC