Skip to content
/ sharedb Public

Realtime database backend based on Operational Transformation (OT)

License

Notifications You must be signed in to change notification settings

share/sharedb

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 15, 2023
fd62164 Β· Sep 15, 2023
Sep 21, 2021
Nov 24, 2021
Jan 24, 2022
Jan 27, 2022
Jun 14, 2021
Jan 27, 2022
Aug 23, 2021
May 13, 2020
Nov 26, 2020
Sep 21, 2021
Sep 3, 2015
Jan 17, 2022
Sep 15, 2023

Repository files navigation

ShareDB

NPM Version Test Coverage Status

ShareDB is a realtime database backend based on Operational Transformation (OT) of JSON documents. It is the realtime backend for the DerbyJS web application framework.

For help, questions, discussion and announcements, join the ShareJS mailing list or read the documentation.

Please report any bugs you find to the issue tracker.

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

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:

gem install jekyll bundler

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

npm run docs:install
npm run docs:start