kividbio / kividb
git clone https://github.com/kividbio/kividb.git
v1.1.0 · 4d ago
A fast, multi-threaded Redis® and Valkey alternative written in Rust: drop-in compatible, with full-text and vector search built in
—
stars, 24h
+325
stars, 7 days · #178
+325
stars, 30 days · #812
325
★ total · +325% this week
10
forks · 22 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseAGPL-3.0
Created2026-10-16 (4d ago)
Last pushtoday
Watchers5
OwnerOrganization
GitHub topics
cachedatabasedragonfly-alternativedrop-in-replacementfull-text-searchhigh-performancein-memoryio-uringkey-value-storekividbmultithreadednosqlredisredis-alternativeredis-compatibleresprustvalkeyvector-databasevector-search
Links
- GitHub: github.com/kividbio/kividb
- Homepage: https://kividb.io
- Releases · Issues · Hacker News mentions
README excerpt
# KiviDB **KiviDB** is a fast, multi-threaded alternative to Redis® and Valkey, written in Rust. It speaks the Redis protocol (RESP2 and RESP3), so existing Redis clients, `redis-cli` and libraries work unchanged, and it has full-text and vector search built in. It runs every core on a sharded in-memory key-value design, and persists to snapshots and an optional append-only file. On the same 32 cores, KiviDB serves **21 million pipelined GETs per second: about 9× Redis 8 and 2.3× Dragonfly**, with under half Dragonfly's p99 latency (benchmarks). [code] KiviDB listens on **6380**, not Redis's 6379, so the two can run side by side; point your client at that port, or pass `--port 6379`. - **Protocol**: Redis-compatible command surface (see COMMANDS.md for the supported commands) - **Search and vectors**: Redis Stack–style `FT.*` commands for full-text, tag, numeric and vector (FLAT / HNSW) search - **Lua scripting**: optional Cargo feature. `EVAL`, `SCRIPT`, `FUNCTION`, `FCALL` and related commands are available in builds with `--features lua` (see Scripting commands (Lua)) - **TLS**: optional Cargo feature (`--features tls`) - **Default listen address**: `0.0.0.0:6380`, with protected mode on - **License**: GNU Affero General Public License v3 (AGPL-3.0-only), open source; using KiviDB does not put your application under the AGPL; see License Repository: github.com/kividbio/kividb · Website: kividb.io ### How it compares | | KiviDB | Redis 8 | Valkey 8 | Dragonfly | KeyDB | |---|---|---|---|---|---| | License | AGPL-3.0 | RSALv2, SSPLv1 or AGPL-3.0 | BSD-3-Clause | BSL 1.1 | BSD-3-Clause | | Language | Rust | C | C | C++ | C++ | | Commands run on | every core (sharded) | one thread (I/O threads) | one thread (I/O threads) | every core (shared-nothing) | several threads | | Full-text and vector search (`FT.*`) | built in | built in (Query Engine) | separate module | built in | no | | Lua scripting | `lua` build | yes | yes | yes | yes | As of October 2026. Something out of date or wrong? Please open an issue. ## Performance *Throughput, latency, vector search and vector ingest. Click for the full-resolution video.* All figures below are from one session in October 2026 on AWS Graviton3 bare metal: the server on a `c7gn.metal` (64 vCPU), confined to 32 cores, and the load generator on a second `c7gn.metal` in the same placement group. Each engine ran alone on the server, one after another. ### Key-value memtier_benchmark through kivi-benchmark's `run-matrix.sh`: 10 million keys, 100-byte values, 30 s a scenario, mean of two rounds; 300 connections pipelined, 1,200 without pipelining. | ops/s | KiviDB 1.1.0 | Dragonfly 2.0.2 | Redis 8.10 | Redis Cluster (32 shards) | |---|------:|------:|------:|------:| | GET, pipeline 16 | **21.2M** | 9.1M | 2.4M | 4.7M | | SET, pipeline 16 | **19.2M** | 8.5M | 2.0M | 4.7M | | GET, no pipelining | 3.07M | **3.35M** | 1.32M | 1.46M | | SET, no pipelining | 3.12M | **3.38M** | 1.54M | 1.46M | | p99 latency, GET / SE