ShareDB

Realtime database backend based on Operational Transformation (OT)

README

ShareDB


  NPM Version
  Test
  Coverage Status

ShareDB is a realtime database backend based on [Operational Transformation
(OT)](https://en.wikipedia.org/wiki/Operational_transformation) of JSON
documents. It is the realtime backend for the [DerbyJS web application
framework](http://derbyjs.com/).

For help, questions, discussion and announcements, join the [ShareJS mailing
list](https://groups.google.com/forum/?fromgroups#!forum/sharejs) or [read the documentation](https://share.github.io/sharedb/
).

Please report any bugs you find to the [issue
tracker](https://github.com/share/sharedb/issues).

Features


- Realtime synchronization of any JSON document
- Concurrent multi-user collaboration
- Synchronous editing API with asynchronous eventual consistency
- Realtime query subscriptions
- Simple integration with any database
- Horizontally scalable with pub/sub integration
- Projections to select desired fields from documents and operations
- Middleware for implementing access control and custom extensions
- Ideal for use in browsers or on the server
- Offline change syncing upon reconnection
- In-memory implementations of database and pub/sub for unit testing
- Access to historic document versions
- Realtime user presence syncing

Documentation


https://share.github.io/sharedb/

Examples


Counter


[](examples/counter)

Leaderboard


[](examples/leaderboard)

Development


Documentation


The documentation is stored as Markdown files, but sometimes it can be useful to run these locally. The docs are served using Jekyll, and require Ruby >2.4.0 and Bundler:

  1. ``` sh
  2. gem install jekyll bundler
  3. ```

The docs can be built locally and served with live reload:

  1. ``` sh
  2. npm run docs:install
  3. npm run docs:start
  4. ```