Skip to content

chenow/RustyStore

Repository files navigation

Rusty Store

Rust Logo Redis Logo Docker Logo

CI - Tests

Rusty Store is a Redis clone implemented in Rust. It leverages the RESP protocol via a TCP server to provide a Redis-compatible key-value store.

demo.mov

Features

  • Redis-Compatible: Works with redis-cli and Redis client libraries.
  • Asynchronous Multithreading: Handles multiple clients concurrently.
  • Commands Supported: SET, GET, and more.
  • Docker Support: Available as a Docker image.

Getting Started

Prerequisites

  • Docker (for containerized usage)
  • Nix (optional, for local installation with flake.nix)

Installation

Docker

To pull and run Rusty Store using Docker, run:

docker pull chenow/rusty-store
docker run -p 6379:6379 chenow/rusty-store

Nix (Optional)

For Nix users, you can install Rusty Store locally using the flake.nix file:

nix develop
make run

Running Tests

To ensure everything is working correctly, you can run the provided tests:

make test

Usage

Once Rusty Store is running, you can interact with it using redis-cli or any Redis-compatible client library.

Example:

redis-cli
127.0.0.1:6379> SET mykey myvalue
OK
127.0.0.1:6379> GET mykey
"myvalue"

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Redis clone in Rust, using the RESP protocol over an asynchronous TPC server

Resources

License

Stars

Watchers

Forks