Skip to content

RPC-based KV database server/client library with pluggable stubs and utils as well as binaries containing one implementation

License

Notifications You must be signed in to change notification settings

mcaveniathor/toboggan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

toboggan

Rust Report Card Crates.io docs.rs Rust 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.

NOTE Toboggan and a number of its key dependencies are under active development and should be considered unstable for the time being.

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

About

RPC-based KV database server/client library with pluggable stubs and utils as well as binaries containing one implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages