# remoteStorage.js
[![Build Status](https://secure.travis-ci.org/remotestorage/remotestorage.js.png)](http://travis-ci.org/remotestorage/remotestorage.js)
[![devDependency Status](https://david-dm.org/remotestorage/remotestorage.js/dev-status.png)](https://david-dm.org/remotestorage/remotestorage.js#info=devDependencies)
[![Code Climate](https://codeclimate.com/github/remotestorage/remotestorage.js.png)](https://codeclimate.com/github/remotestorage/remotestorage.js)
remoteStorage.js is a JavaScript library for storing user data locally in the
browser, as well as connecting to [remoteStorage](http://remotestorage.io)
servers and syncing data across devices and applications.
### Where to get help?
* See [remotestorage.io](http://remotestorage.io/) for documentation, community
forums, and links
* Get instant support via IRC in
[#remotestorage](irc://irc.freenode.net:7000/remotestorage) on Freenode
### Running a local test server
To develop remoteStorage-enabled apps, you need to have a
remoteStorage-compatible storage account. We recommend
[reStore](https://github.com/jcoglan/restore) for running a local test server.
(Use the latest version from GitHub, not npm!)
You can also get an account with a hoster, or use one of the various other
remoteStorage server implementations:
[get storage](http://remotestorage.io/get/).
### Which version to choose?
You can either use a stable release or the current HEAD build. Stable releases
can be found in [release/](https://github.com/remotestorage/remotestorage.js/tree/master/release/).
Directories with a `-rcX` suffix contain release candidates, which may be used
for testing but aren't necessarily "stable" releases.
[release/head](https://github.com/remotestorage/remotestorage.js/tree/master/release/head/)
contains a semi-current HEAD build. It is updated manually and irregularly. To
build an up-to-date version of all files, run `make all` in the repository
root.
### Which build file to use for my app?
There are a number of different builds available:
* remotestorage.js - Contains all components of remotestorage.js for
running in a browser.
* remotestorage.amd.js - The same as remotestorage.js, but wrapped
for use with
[AMD](https://en.wikipedia.org/wiki/Asynchronous_module_definition) loaders
such as [RequireJS](http://requirejs.org/).
* remotestorage.min.js - Minified version of remotestorage.js
* remotestorage-nocache.js - Contains a version of remotestorage.js
without any caching features included. Use this if you want your app to write
directly to the remote server **without caching** any data in the browser's
storage (localStorage or indexedDB).
* remotestorage-nocache.amd.js,
remotestorage-nocache.min.js - same as the other .amd / .min
build, but based on remotestorage-nocache.js.
### Running tests
Install development dependencies including the
[testing framework](https://github.com/silverbucket/teste):
npm install
Run all suites:
npm test
Use the `teste` executable in order to test single files, like so e.g.:
node_modules/.bin/teste test/unit/baseclient-suite.js
### How to build
Make sure you have [Natural Docs](http://www.naturaldocs.org/) installed on
your system (e.g. via `sudo apt-get install naturaldocs`).
Display the available build tasks:
make
Build everything:
make all