Merge branch 'quotes-on-ETags' (closes #588)
[remotestorage.js] / README.md
1 # remoteStorage.js
2
3 [![Build Status](https://secure.travis-ci.org/remotestorage/remotestorage.js.png)](http://travis-ci.org/remotestorage/remotestorage.js)
4 [![devDependency Status](https://david-dm.org/remotestorage/remotestorage.js/dev-status.png)](https://david-dm.org/remotestorage/remotestorage.js#info=devDependencies)
5 [![Code Climate](https://codeclimate.com/github/remotestorage/remotestorage.js.png)](https://codeclimate.com/github/remotestorage/remotestorage.js)
6
7 remoteStorage.js is a JavaScript library for storing user data locally in the
8 browser, as well as connecting to [remoteStorage](http://remotestorage.io)
9 servers and syncing data across devices and applications.
10
11 ### Where to get help?
12
13 * See [remotestorage.io](http://remotestorage.io/) for documentation, community
14   forums, and links
15 * Get instant support via IRC in
16   [#remotestorage](irc://irc.freenode.net:7000/remotestorage) on Freenode
17
18 ### Running a local test server
19
20 To develop remoteStorage-enabled apps, you need to have a
21 remoteStorage-compatible storage account. We recommend
22 [reStore](https://github.com/jcoglan/restore) for running a local test server.
23 (Use the latest version from GitHub, not npm!)
24
25 You can also get an account with a hoster, or use one of the various other
26 remoteStorage server implementations:
27 [get storage](http://remotestorage.io/get/).
28
29 ### Which version to choose?
30
31 You can either use a stable release or the current HEAD build. Stable releases
32 can be found in [release/](https://github.com/remotestorage/remotestorage.js/tree/master/release/).
33 Directories with a `-rcX` suffix contain release candidates, which may be used
34 for testing but aren't necessarily "stable" releases.
35
36 [release/head](https://github.com/remotestorage/remotestorage.js/tree/master/release/head/)
37 contains a semi-current HEAD build. It is updated manually and irregularly. To
38 build an up-to-date version of all files, run `make all` in the repository
39 root.
40
41 ### Which build file to use for my app?
42
43 There are a number of different builds available:
44
45 * <kbd>remotestorage.js</kbd> - Contains all components of remotestorage.js for
46   running in a browser.
47 * <kbd>remotestorage.amd.js</kbd> - The same as remotestorage.js, but wrapped
48   for use with
49   [AMD](https://en.wikipedia.org/wiki/Asynchronous_module_definition) loaders
50   such as [RequireJS](http://requirejs.org/).
51 * <kbd>remotestorage.min.js</kbd> - Minified version of remotestorage.js
52 * <kbd>remotestorage-nocache.js</kbd> - Contains a version of remotestorage.js
53   without any caching features included. Use this if you want your app to write
54   directly to the remote server **without caching** any data in the browser's
55   storage (localStorage or indexedDB).
56 * <kbd>remotestorage-nocache.amd.js</kbd>,
57   <kbd>remotestorage-nocache.min.js</kbd> - same as the other .amd / .min
58   build, but based on remotestorage-nocache.js.
59
60 ### Running tests
61
62 Install development dependencies including the
63 [testing framework](https://github.com/silverbucket/teste):
64
65     npm install
66
67 Run all suites:
68
69     npm test
70
71 Use the `teste` executable in order to test single files, like so e.g.:
72
73     node_modules/.bin/teste test/unit/baseclient-suite.js
74
75 ### How to build
76
77 Make sure you have [Natural Docs](http://www.naturaldocs.org/) installed on
78 your system (e.g. via `sudo apt-get install naturaldocs`).
79
80 Display the available build tasks:
81
82     make
83
84 Build everything:
85
86     make all
87   
88 ---
89   
90 [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/remotestorage/remotestorage.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge")