9 releases
0.0.10 | Oct 3, 2023 |
---|---|
0.0.9 |
|
0.0.7 | Aug 23, 2023 |
0.0.3 | Jul 30, 2023 |
0.0.2 | May 17, 2023 |
#1398 in Database interfaces
153 downloads per month
150KB
3.5K
SLoC
tarantool-rs
- Asyncronous Tokio-based client for Tarantool (WIP)
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