📈 GH Trending Explorer 🎲 Surprise me

← all repos

salihcantekin / ruvio

git clone https://github.com/salihcantekin/ruvio.git ruvio-0.3.4 · 3d ago

Redis-compatible, open-source in-memory database written in Rust. Multi-shard, 287 commands, clients for Rust, .NET, Go, Java, Python and Node.js

—
stars, 24h
+127
stars, 7 days · #405
+127
stars, 30 days · #1,855
127
★ total · +127% this week
12
forks · 7 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageRust
LicenseAGPL-3.0
Created2026-10-15 (5d ago)
Last pushtoday
Watchers4
OwnerUser

GitHub topics

Links

README excerpt
Ruvio 
 One process instead of a cache, a lock service, a conditional write, a change feed and a delay queue. 
 A Rust key-value server that speaks RESP. redis-cli and existing RESP clients connect.
 Get started ·
 Website ·
 Commands ·
 Performance ·
 Packages ·
 Docs ·
 Releases 
 Why Ruvio ·
 Quick start ·
 Building blocks ·
 Performance ·
 Clients ·
 Operator UI ·
 Documentation ·
 License 
---
## Why Ruvio
The shard that owns a key parses, records, applies, and replies. The hot path does not take a lock and does not hop to another thread.
| Strength | What it means |
| --- | --- |
| **Owner-per-shard engine** | One owner per shard, no lock on apply. A feature allocates only when a key uses it: twenty thousand leases added about 3.6 MB, twenty thousand versioned 64-byte strings about 7.2 MB, body included. |
| **Durability you name** | `memory`, `snapshot`, `everysec` or `always`, chosen at startup. A write is checked, appended, then applied. If the log cannot take the record, the key stays as it was and later writes return `MISCONF`. |
| **Wire compatible** | RESP2 subset; `redis-cli` and existing RESP clients connect. The command list that CI checks is docs/compatibility-matrix.json. |
| **Six first-party clients** | Rust, C#, Go, Java, Python and Node.js, each with a typed method for every one of the 287 listed commands and cluster routing from one seed address. |
| **Operator UI** | A browser view of one running server: data, command forms, Pub/Sub and ACL users. |
## Quick start
A default process listens on `127.0.0.1:6379`.
 [code] 
`linux` and `latest` are the same Linux image, as is each version tag, built for linux/amd64 and linux/arm64 (Apple Silicon and other arm64 hosts run it natively). The image default durability is `memory`. A persistent deploy sets `RUVIO_DURABILITY` and keeps the volume.
 Prebuilt binary (Linux x64/arm64, macOS arm64, Windows x64) 
Download a binary from GitHub Releases. Each archive holds `ruvio` (the server), `ruvio-ctl` (backup, restore and checks), `ruvio.example.toml`, the README and the license. `SHA256SUMS` lists the checksums.
 [code] 
On Windows, unzip `ruvio- -windows-x64.zip` and run `ruvio.exe`. On macOS, a binary downloaded by a browser is quarantined; `xattr -d com.apple.quarantine ruvio ruvio-ctl` clears it (downloads with `curl` are not quarantined). `ruvio --help` lists every flag.
 From source 
 [code] 
The server is installed from the Docker image, a release binary, or built from this checkout; it is not published as a crate.
Settings merge in this order: built-in defaults, `ruvio.toml` (template: `ruvio.example.toml`), `RUVIO_*` environment variables, then CLI flags. The file is read once, at process start. See Configuration.
## Built-in building blocks
These commands run on the shard that owns the key. A key that never uses them stores nothing extra. `GET`, `SET`, and `INCR` do not consult them.
| Command | What it replaces a second system for |
| --- | --- |
| `LEASE` / `RELEASE` | A fe