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.
NOTE Toboggan and a number of its key dependencies are under active development and should be considered unstable for the time being.
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
cargo install toboggan
You can view the helptext for the server cli using the command cargo run --bin server -- -h
.
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
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
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