#redis #key-value-database #database-client #key-value #database-server #kv #client-server

bin+lib toboggan

Key/value TCP-based database server and client cli based on the sled embedded database

4 releases

0.1.3 Sep 5, 2022
0.1.2 Sep 3, 2022
0.1.1 Sep 3, 2022
0.1.0 Sep 3, 2022

#381 in Database implementations

MIT license

18KB
344 lines

toboggan

Rust Report Card Crates.io docs.rs Crates.io

Description

Toboggan is an RPC-based key/value database client and server system built on Google's tarpc library and the sled embedded database. This crate contains client and server binaries using Bincode serialization over TCP, as well as a library with the traits, boilerplate, stubs, and utilities to integrate the transport and business logic of your choosing with the RPC interface and server functionality provided by the crate.

Features

At time of writing, the following operations are supported, with more to come soon.

  • NewTree
  • Insert
  • Get
  • GetTreeNames
  • GetID (returns a monotonically generated ID)
  • Remove

Installation

cargo install toboggan

Binary Usage

Server

You can view the helptext for the server cli using the command cargo run --bin server -- -h.

Example

The command cargo run --bin server -- -a 10.0.18.135 -p 5050 -d ./db tcp will create/open a database at /db and listen for RPC requests on 10.0.18.135:5050

Client

The client helptext can similarly be viewed with cargo run --bin client -- -h.

Helptext for a specific subcommand can be viewed using cargo run --bin client -- <subcommand> -h

Example

To insert the value "Thor M." into the "my_name" key of the "names" tree of the server above, use the following command: cargo run --bin client -- -a 10.0.18.135 -p 5050 insert -k my_name "Thor M." -t names

Dependencies

~12–22MB
~287K SLoC