This project raises my eyebrows at two technical points, though:
There is no mention of "Promise" or "async/await" in the readme. I know the project tries to mirror the current Node filesystem, but that also offers Promises — something I would call the industry standard for writing readable async code these days. Despite being in beta, I would argue that this project should also aim to support Promises over nested callback pyramids as the default pattern.
Secondly, maybe I'm just not familiar with the idea, but I'm very sceptical of the AsyncMirror backend — when you use an asynchronous service synchronously, how do you guarantee all writes are flushed before the user leaves the page?
Other than that, a project of this scale is no small feat, so godspeed to all contributors.
I'm hoping IndexedDB is fast enough for my use case. I haven't been able to benchmark it yet.
Right now I'm modifying the node connector to use BrowserFS. It's a bit of work but should be worth it.
There are use cases that you'll see in the future that couldn't grow or exist otherwise.
Hyperbolic tldr; Don't be old and crotchety. Join us, lead us, or die.
I know it was hyperbole but this sort of attitude is what got a generation of technologists and end-users to blindly accept oversharing their personal data, having that data used by nefarious third parties, and to be spied on. We're now in the midst of that same generation realising this far too late and having the monumentally difficult task of convincing their technologically-illiterate friends and family to move away from the shiny reality they promised but never delivered.
I'm happy with softly-softly-catchy-monkey rather than driving off the side of the cliff at 100 km/h, thank you.
EDIT: I'd love to see a discussion comparing localForage, BrowserFS, GUN, and RxDB :D
BrowserFS seems to even have Dropbox etc. backends, and GUN already has a NodeJS `fs` adapter, so could theoretical could seamlessly swap BrowserFS in for fs and get GUN backed up to Dropbox!!!
I empathize with their desire for more citations, but this rubs me the wrong way. Either they don't trust authors to cite sources appropriately, or they are asking authors to create inappropriate citations. I suggest trusting authors to cite appropriately.
Moreover, using a system isn't the same as building on work from a paper. If one needs to add a reference for a system, it may be more useful to cite a more up-to-date reference for the system rather than the original paper where it was proposed.
Here's their paper, mentioned in the GitHub page (PDF format): https://people.cs.umass.edu/~emery/pubs/doppio.pdf
Seriously, over 20 ways to backend a filesystem!!!
Really really incredible!