An in-memory database, compatible with Redis protocol and clients. Written in Rust.
OTHER License
An in-memory database, compatible with Redis protocol and clients. Written in Rust.
Stability: early alpha
Hobby project, not for serious use. You have been warned.
"Amiko" means "friend" in Esperanto. Stress falls on "i", like in Spanish "amigo".
cargo build --release
Just run the amiko
binary from the target/
directory. Currently, it always binds to 127.0.0.1:6379
.
Default log level is info
. Other available levels: off
, error
, warn
, info
, debug
, trace
. To change: AMIKO_LOG=<level>
.
Amiko is intended to be a drop-in replacement your existing Redis clients, apps and libraries should work with Amiko without modifications.
The following commands are supported:
SET <key> <value>
GET <key>
DEL <key>
KEYS <pattern>
(all Redis patterns should work)FLUSHDB [SYNC|ASYNC]
(always synchronous, optional argument is parsed but ignored)PING [msg]
, ECHO <msg>
, QUIT
RESP3 is not supported at this time.
Amiko is lightweight and has low memory footprint. Binary size is around 6 MB, memory footprint is around ~2 MB (on an empty database).
Speed-wise, I expect it to be fairly speedy but not Redis speedy, at least in theory. In practice, current version of Amiko was even a bit faster on some tests.
# Redis 7.2.4
Test 1: 20000 writes of different keys
Elapsed: 721.67ms
# amiko
Test 1: 20000 writes of different keys
Elapsed: 554.77ms
While there are no benchmarks, here are some general thoughts:
GNU LGPL v3