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]