jakearchibald / byte-storage

41 stars 2 forks source link

levelup: prior art? #6

Open bryanburgers opened 7 years ago

bryanburgers commented 7 years ago

Does https://github.com/Level/levelup provide any prior art that can be used? It's a binary object store that uses keys and values, and has a lot of backends implemented (which problem means it generically solves many problems – it's not just for Google's leveldb).

(I'm not offended if it doesn't. I just came across your tweet about this repo and was curious if levelup could provide some use cases, etc.)

yoshuawuyts commented 7 years ago

The successor to levelDB for block store style access is probably the random-access-* family of modules such as https://github.com/mafintosh/random-access-file. It might prove to be valuable prior art, as it's a good example of what people that need block store APIs actually use in the wild to implement databases on.

ghost commented 7 years ago

And it's also important to note that random-access modules only implement read() and write(). It may make sense to implement an asynchronous size() or length(), but this can also be done in userland by writing a first block of metadata, so these aren't strictly necessary. Everything else can be built on top of asynchronous read() and write().