louischatriot / nedb

The JavaScript Database, for Node.js, nw.js, electron and the browser
MIT License
13.48k stars 1.02k forks source link

Add link to "official" fork #682

Open RollingHog opened 3 years ago

RollingHog commented 3 years ago

Since this won't be supported anymore, maybe owner should add a link to what would be recognized as a "official" and stable fork of this repo, like https://github.com/seald/nedb/ ?

RollingHog commented 3 years ago

Another good link to be added is https://github.com/bajankristof/nedb-promises#readme , since callbacks are you know, a little uncomfortable.

chmac commented 3 years ago

This might also be worth considering: https://github.com/nedbhq/nedb-core

Courtesy of https://andremiras.github.io/gitpop3/

chmac commented 3 years ago

Also perhaps https://github.com/typicode/lowdb deserves a mention as a solid alternative

tex0l commented 2 years ago

@RollingHog We released a version of our fork which removes the use of async in favor of a Promise-based executor, and which exposes a Promise-based interface:

https://github.com/seald/nedb/blob/master/CHANGELOG.md#300---2022-03-16

amirouche commented 2 years ago

a Promise-based executor

@tex0l why did you choose the promise-based executor?

tex0l commented 2 years ago

a Promise-based executor

@tex0l why did you choose the promise-based executor?

Because doing it without async but with the built-in ES6 Promise makes it dependency-free.

amirouche commented 2 years ago

With Chez and Gambit callback-based code is ten times faster, than colored async code.

tex0l commented 2 years ago

At Seald (for which we maintain this fork), we don't observe any performance issue with our implementation. If you want to do a benchmark between the historical version of nedb & our latest version with async code, feel free. I don't think there is a 10x difference.

Even if there is on some environments, as the whole JS ecosystem moves towards async code, I don't think going back to callbacks is a good idea. The subsequent versions of node.js & browsers will catch up the difference if there's any.