LocalStorage implementation of leveldown for mobile and desktop browsers. The idea is to be able to use the level stack on any browser that supports LocalStorage.
The scenarios envisaged are:
- Occasionally connected clients
- Ad-hoc networks where clients need to sync directly with each other
This project is intended for use with the level eco-system.
Install
npm install localstorage-down
Browser support
Basically we support any browser that has LocalStorage, but since we also rely on an ES5 environment due to dependencies from abstract-leveldown, in practice you will need the following shims in order to work correctly on all browsers (e.g. IE 8-9, Android 2.3):
- typedarray for binary storage
- es5-shim for just about everything
We run automated tests in the following browsers:
- Firefox: 40-latest
- Chrome: 44-beta
- IE: 9-11
- Edge: latest
- Safari: 7.0-latest
- iPhone: 8.0-latest
- Android: 4.1-latest
In environments without LocalStorage, such as Node or Safari private browsing, this module will fall back to a temporary in-memory implementation, thanks to humble-localstorage.
Example
At the command prompt in your chosen directory :
npm install localstorage-down
npm install levelup
npm install browserify -g
npm install beefy -g
Create a file called index.js
and enter the following:
var localstorage = ;var levelup = ;var db = ; db;db;db;db; db ;
Publish the site :
beefy index.js
See the output :
Listen to John Cage:
https://www.youtube.com/watch?v=9hVFCmK6GgM
Tests
npm run test
This will run tests in Node against localstorage-memory
.
To test in Saucelabs, you can run e.g.:
npm run test-browser
Or to test in Zuul locally:
npm run test-zuul-local
To test and check code coverage, run:
npm run coverage
To test and report code coverage to Coveralls, run:
npm run report-coverage