RustyDB is a distributed, high-performance, low-latency key-value store built in Rust using gRPC. It supports basic operations like Set, Get, and Delete, and is designed with asynchronous operations for high concurrency.
- CRUD Operations: Set, Get, Delete over gRPC
- High Performance: Asynchronous I/O with Rust's
tokioruntime - Scalable Design: Distributed architecture with simple Docker deployment
- Low Latency: Optimized for fast data access
Before running the project, ensure you have the following installed:
git clone https://github.com/shaheer73/RustyDB.git
cd RustyDBdocker-compose up --buildThis will automatically start the server and run the client, which will perform the following operations:
- Set a key-value pair (
foo: bar) - Retrieve the value of
foo - Delete the key
foo
If everything is set up correctly, you should see output like:
server-1 | Server listening on [::]:50051
client-1 | Successfully connected to the server
client-1 | Set Response: true
client-1 | Get Response: "bar"
client-1 | Delete Response: true
client-1 exited with code 0To stop the server and client, press Ctrl + C or run:
docker-compose downIf you prefer to run the project manually (without Docker), follow these steps:
Follow the instructions at https://www.rust-lang.org/tools/install.
In one terminal, start the server:
cargo run --bin serverIn another terminal, run the client:
cargo run --bin clientBuilt by Noumaan & Shaheer.