mafintosh / flat-file-db

Fast in-process flat file database that caches all data in memory
196 stars 15 forks source link

flat-file-db

Fast in-process flat file database for Node.js that supports JSON and caches all data in memory. All data is persisted to an open file using a append-only algorithm ensuring compact file sizes and strong consistency.

npm install flat-file-db

build status

Usage

Pass a database file to use to the flat-file-db constructor and wait for the database to open. When it is open all data has been loaded into memory.

var flatfile = require('flat-file-db');
var db = flatfile('/tmp/my.db');

db.on('open', function() {
    db.put('hello', {world:1});  // store some data
    console.log(db.get('hello')) // prints {world:1}

    db.put('hey', {world:2}, function() {
        // 'hey' is now fully persisted
    });
});

If you don't want to wait for it to open use flatfile.sync

var db = flatfile.sync('/tmp/my.db');
console.log(db.get('hello')); // prints {world:1}

If you issue multiple writes the last one will always win

for (var i = 0; i < 10; i++) {
    db.put('test', {count:i}, ...);
}
console.log(db.get('test')); // {count:9} which also the persisted value of 'test'

API

Events

License

MIT