level-airplanedb v1.0.15
level-airplanedb
This module allows you to work offline in the browser using indexdb (+ shim for websql when indexdb not available).
You get a sync method in browserified client to write to the server. The server gets a sync method that returns a readstream of the changelog after the given timestamp.
Example client
var levelup = require('levelup');
var leveljs = require('level-js');
var airplanedb = require('level-airplanedb');
var db = levelup('test', {db: leveljs});
db = airplanedb(db);
// sync range
// any keys in local changelog will be written to the server
// any keys from remotedb will be synced to client
db.sync({start: ..., end: ...}, remotedb, cb);
// changes to local db will be written to changelog removed when synced.
Example server
var levelup = require('levelup');
var leveldown = require('leveldown');
var airplanedb = require('level-airplanedb');
var db = levelup('test', {db: leveldown});
db = airplanedb(db);
db.sync(from, range) // readstream of changelog >= from
Background
In the spirit of offline first I wanted a working offline storage, giving me the choice when to sync saving battery usage.
level-sublevel is used to persist the changelog both on client and server.
See test/simple.js for a client server example using :-
multilevel - leveldb over network
level-js - leveldown api in the browser
Gotchas
This is a work in progress, conflicts are not handled at all! The client's changelog is what is written to the server.
Updating keys in the same range as a running sync is not supported, doing this will incur loss of data.
install
With npm do:
npm install level-airplanedb
test
npm test
license
MIT
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago