npm.io
0.0.1-alphaomega • Published 8 years ago

dirtle

Licence
BSD
Version
0.0.1-alphaomega
Deps
0
Vulns
0
Weekly
0
Stars
4

Dirtle

Warning: Do not use this for real things. You will lose data.

Database done right.

What?

Dirtle is a fast, in-memory, persistent JSON store for node.js with synchroneous but non-blocking access.

How?

Easy.

  1. Install it.
npm i dirtle
  1. Create the database.
echo '{}' > db.json
  1. Use it.
var Dirtle = require('dirtle');
var path = require('path');
var db = new Dirtle(path.join(__dirname, 'db.json')).db;

db.users = [];
db.users.push({ name : 'hohoho' });
db.pages = {
    home: 'Home Page',
    profile: 'My Profile'
};
  1. Look at the database from outside.
$ cat db.json | pjson
  {
    "pages": {
      "home": "Home Page", 
      "profile": "My Profile"
    }, 
    "users": [
      {
        "name": "hohoho"
      }
    ]
  }

How does it work?

When creating an instance of Dirtle, the Database is being loaded into memory synchroneously from a JSON file. It is being dumped non-blockingly to disk once every 470 milliseconds by default and once when the application exits.

You use it just like a native Object in JavaScript. However, it has to pass through JSON.stringify or the app will crash.

API

var db = new Dirtle(path[, timeout]).db;

path is the path to the database json text file. timeout is an optional timeout in ms, when the db will be persisted to disk (default 470ms).

Keywords