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.
- Install it.
npm i dirtle
- Create the database.
echo '{}' > db.json
- 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'
};
- 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).