| Crates.io | crabdis |
| lib.rs | crabdis |
| version | 0.1.36 |
| created_at | 2024-03-11 00:58:09.777959+00 |
| updated_at | 2026-01-20 17:19:17.688391+00 |
| description | It's like Redis but a bit rusty... |
| homepage | https://github.com/pxseu/crabdis#readme |
| repository | https://github.com/pxseu/crabdis |
| max_upload_size | |
| id | 1169073 |
| size | 156,736 |
It’s like Redis but a bit rusty.
crabdis is a small, in-memory key-value store written in Rust that speaks the Redis protocol (RESP).
[!NOTE] This project is experimental. Use in production only if you’re comfortable with sharp edges.
HELLO 3SAVE/BGSAVE + periodic auto-save)Known to work with clients like redis-cli, ioredis, and Bun’s Redis client, but compatibility is not guaranteed.
https://github.com/pxseu/crabdis/releasescargo install crabdispxseu/crabdis on Docker HubRun locally:
crabdis
Connect with redis-cli:
redis-cli -p 6379 ping
The Docker image disables persistence by default (it runs with --save "").
docker run --rm -p 6379:6379 pxseu/crabdis:latest
To enable persistence, mount a volume and pass --dir and one or more --save points:
docker run --rm -p 6379:6379 \
-v crabdis_data:/data \
pxseu/crabdis:latest \
--dir /data --save "60 1"
(See docker-compose.yml for an example setup.)
Run crabdis --help for the full list. Common flags:
--address / --port: bind address and port (Unix defaults to ::, Windows defaults to 127.0.0.1)--threads: Tokio worker threads--verbose: enable verbose logging--dir / --dbfilename: RDB location (defaults to ./dump.rdb)--save "SECONDS CHANGES": auto-save points; pass --save "" to disable RDB persistence
--save points, Crabdis uses defaults: 3600 1, 300 100, 60 10000Crabdis supports a (growing) subset of Redis commands. Highlights:
GET, SET (incl. EX/PX/NX/XX), DEL, EXISTS, KEYS, SCAN, TYPE, DBSIZE, FLUSHDB, SELECT, RENAMENXMGET, MSETINCR, DECREXPIRE, TTL, PTTL, PERSIST, SETEX, PSETEXHSET, HGET, HGETALL, HDEL, HEXISTS, HLENPUBLISH, SUBSCRIBE, UNSUBSCRIBEPING, QUIT, INFO, HELLO, COMMAND / COMMAND DOCS, CLIENT, CONFIGSAVE, BGSAVE, LASTSAVEFor client compatibility, prefer discovering capabilities via COMMAND/COMMAND DOCS rather than assuming Redis parity.
cargo build --releasecargo run -p crabdiscargo testcargo bench -p crabdis-coreMIT License, see LICENSE.