tarantool-rs 0.0.10

Asyncronous tokio-based client for Tarantool
Documentation
# `tarantool-rs` - Asyncronous Tokio-based client for Tarantool (WIP)

[![Crates.io](https://img.shields.io/crates/v/tarantool-rs)](https://crates.io/crates/tarantool-rs)
[![docs.rs](https://img.shields.io/docsrs/tarantool-rs/latest)](https://docs.rs/tarantool-rs/latest)
![CI](https://github.com/Flowneee/tarantool-rs/actions/workflows/ci.yml/badge.svg)

`tarantool-rs` - asyncronous Tokio-based client for [Tarantool](https://www.tarantool.io).

Documentation available on [docs.rs](https://docs.rs/tarantool-rs/latest).

### 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`:

``` rust
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

* [x] authorization
* [x] evaluating Lua expressions
* [x] remote function calling
* [x] CRUD operations
* [x] transaction control (begin/commit/rollback)
* [x] reconnection in background
* [x] 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, ...)
* [ ] ...