Show HN: Camellia, a lightweight, persistent, hierarchical key-value store
github.comI found this post when searching HN for "key-value store" posts, because I'm working on my own and wanted to see what other people have done.
Fwiw, your take on this is basically a generic blob storage that is (1) keyed by strings with (2) some restrictions on their format and (3) some special semantics stemming from it.
In particular, #2 is the fact that multiple / are collapsed into one.
#3 is that slashes are used for tokenizing keys when importing/exporting json and for delete operations.
There also appears to be a restriction that a node can't have both a value and children, which is consistent with the json model, but not with other hierarchical kv stores, e.g. Windows registry.
All in all, there is certainly a value in being able to export/import data as json, but it appears that ALL syntax and semantic restrictions in the datamodel are due to that. So, technically, one can just use generic kv store, allow keys to be in whatever format, and then make SetValueFromJson() take a "path separator" as an argument and also allow it to fail (due to malformed keys or keys having values and children). Ditto for delete.
This is less of a critique/feedback and more of "analysis", for myself. Take it for what it is.
Hi HN, this is a small Golang project I was developing for myself and then decided to open source. Let me know your comments, advices, complaints etc.