Giga-Byte Cache.
In-memory key-value pair LRU cache on top of structured data stored on local disk.
A giant fucking complicated hashmap
progress:
- lru, in-memory read/writes
- sync to disk
- get, set, delete commands
- increment command
- server: make the damn thing
- server: opt-in end-end AES256 encryption
- TTL (more general, scheduled command runs, doesn't necessarily have to be a delete)
- rewrite it in Rust (ah shit, here we go again...)
- multi-threading (god save me, except there is no god, it's all lost & hopeless)
- WAL file write & recovery for those of you with nastier kinks for your databases
- pub/sub notifications for requested changes
- backups, cuz yes.
- error handling, i think all the languages should adopt errors as values already
- explicitness, love it, no allocator? no heap!
- comptime, chef's kiss
- tests, it's actually convenient, just define a test block wherever you want!
- standard library, fucking A
I haven't found anything negative about Zig, yet.
"then why are you rewriting it in Rust?"
I currently am finding out what REAL benefits rust provides by using it in another project, if the benefits outweigh the cost of a rewrite and subsequent maintenance is easier in rust overall, then I'll go through with it.