haha-systems/phage
An ultra fast key-value store that uses disk storage, not memory.
175c78f8fadec1e9da23fdf5eacd02c99f6cb47e
c9327827352354da246733e97535754ced64def8
refs
417fa59a412f232b491bcdb9d934afa3a623e430
Phage is a fast key/value store similar to Redis and Valkey, with these goals in mind:
Phage is written in Zig for speed and safety, and is currently in the early stages of development. Zig is still young, and is continually changing. Equally, this is my first real Zig project. I'm still learning and Phage began as an experiment to get better at Zig and systems programming.
Currently, Phage has achieved the following stats on simple key values:
Benchmark System Specs
I currently perform the benchmarks on my own PC to push the performance as much as possible, but I expect it to perform much better on server-grade hardware.
I hope it's useful, but beware that its not a production-ready tool right now.
io_uring
io_uring
Phage currently supports the following operations. You can interact directly with the database using the CLI, called Demon.
put (key, value): insert a new key/value entry into the database
get (key): retrieve a key/value entry by it's key name
delete (key): delete a key/value entry` from the database
keys (pattern): return keys from the database matching a regex pattern
exit: quits Demon
Phage currently only has a single client; a terminal CLI for direct access to the database. In the future, Phage will include a clustered server and libraries for common languages like Go, Ruby, and JavaScript.
This project is licensed under the MIT License - see the LICENSE file for details.
If you want to contribute to make Phage better, I'm very open to pull/feature requests.