B0ud / key-value-store

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rust CI Version codecov

An embedded key/velue store in Rust.

Pincap Talent Plan for Practical Networked Applications (PNA) in Rust

Project 1 (in-memory key-value store)
  • Make the tests compile
  • Accept command line arguments
  • Cargo environment variables
  • Store values in memory
  • Documentation
  • Ensure good style with clippy and rustfmt

Optional :

  • Switch from clap to structop

I kept clap as a library for the command line part but I have switch on clap derives a "copy" of the structop style

Finally, during the configuration of part 3, I migrated from clap to StructOp for a more suitable syntax

Part 2 (disk-backed key-value store with compacting log file)
  • Error handling
  • How the log behaves
  • Writing to the log
  • Reading from the log
  • Storing log pointers in the index
  • Stateless vs. stateful KvStore
  • Compacting the log
Part 3 (networked disk-backed key-value store with multiple engines)
  • Command line parsing
  • Logging
  • Client-server networking setup
  • Implementing commands across the network
  • Pluggable storage engines
  • Benchmarking

Note : cargo run --bin 'kvs-server|kvs-client' -- [command]

About


Languages

Language:Rust 100.0%