Endb - A simplified & powerful database for storing, accessing, and managing database

Endb

npm-version npm-downloads dependencies npm-info

Github: https://github.com/chroventer/endb
NPM: https://npmjs.com/endb
Yarn: https://yarnpkg.com/en/package/endb
Example: https://glitch.com/~endb

Endb is an SQLite framework which simplifies the database methods components, etc. into easier designs.

  • Object-oriented
  • Persistent storage
  • Configurable
  • Beginner-friendly

Example

const Endb = require('endb');
const db = new Endb.Database();
db.set('account_123456789', {
  id: 123456789,
  password: 'password',
  checked: true
});
console.log(db.get('account_1234567890'));

Contribution

Feel free to contribute or suggest. Submit an issue on GitHub to either suggest or submit a bug report. To contribute, create a new pull-request and it’ll be reviewed and merged, if necessary.

Benchmark

These results are from 10/08/2018, on a MacBook Pro (Retina, 15-inch, Mid 2014, OSX 10.11.6), using Node.js v10.11.0.

--- reading rows individually ---
endb [better-sqlite3] x 283,745 ops/sec ±0.16%
node-sqlite3   x 27,191 ops/sec ±0.39%

--- reading 100 rows into an array ---
endb [better-sqlite3] x 6,650 ops/sec ±0.25%
node-sqlite3   x 2,978 ops/sec ±0.33%

--- iterating over 100 rows ---
endb [better-sqlite3] x 5,231 ops/sec ±0.28%
node-sqlite3   x 278 ops/sec ±0.62%

--- inserting rows individually ---
endb [better-sqlite3] x 64,920 ops/sec ±5.86%
node-sqlite3   x 23,564 ops/sec ±3.58%

--- inserting 100 rows in a single transaction ---
endb [better-sqlite3] x 4,155 ops/sec ±4.45%
node-sqlite3   x 321 ops/sec ±1.4%

Comparison

select 1 row get() select 100 rows all() select 100 rows iterate() 1-by-1 insert 1 row run() insert 100 rows in a transaction
endb 1x 1x 1x 1x 1x
sqlite and sqlite3 10.4x slower 2.2x slower 18.8x slower 2.8x slower 12.9x slower
1 Like

Dude this is awesome! I’ll definitely be trying it out

1 Like

Thanks for the valuable feedback, @thewilloftheshadow!

1 Like

rly… at least add mine into the comparison so i can roast… (yea, this is copying, not cool, for the most part, i like the fact that you use an internal database, thank you very much for that, just another way to make devs eat me and my bff’s dust)

@chroventer looking at the code, it is just using sql and hosting, mine uses none of that, but just plain curl, arrays, objects, and good ol es6

now, im in the competition, lets see who can come out in top, you got 48 hours to improve your database and make it much more advanced than mine is already, if you win… well, i will explain that part in messages, but it does mean removing something

1 Like

sighs

  1. Use edits instead of multiple posts in a row
  2. This is just a framework for sql to make it easier and faster, and he says so at the beginning
  3. its not really a competition, its two different ways to do the same thing. Some users may prefer one, while others prefer another.

@Jonyk56

1 Like

Looks Good @chroventer. However, I would suggest adding benchmark and comparison with other popular wrappers like quick.db , enmap etc.

Hey there,

Adding a benchmark/comparison, comparing to a database framework that uses better-sqlite3 too is perhaps futile.
Since enmap and quick.db also uses better-sqlite3, I think the benchmark would be identical to each other, slightly different however.

Hey there,

Comparison to a JSON database is out of the question.
Furthermore, as @thewilloftheshadow mentioned, “1. This is just a framework for SQL to make it easier and faster, and he says so at the beginning.” It was made to enrich beginners’ or users’ experience.
I have no intentions of competing with you. Perhaps, users have the option to choose between databases they would want to use.

1 Like

Hello @Ashutosh-3601, @thewilloftheshadow!
If you’re willing to use or contribute to the package, please feel free to do that.
Here’s an example of the database setup on Glitch: https://glitch.com/~endb
Thanks again for the valuable feedback and support!

2 Likes

@chroventer check yo dms :smiley: stupid pings gave me an idea