https://github.com/widmogrod/js-crdt
Conflict-free Replication Data Type in TypeScript
https://github.com/widmogrod/js-crdt
Last synced: 3 months ago
JSON representation
Conflict-free Replication Data Type in TypeScript
- Host: GitHub
- URL: https://github.com/widmogrod/js-crdt
- Owner: widmogrod
- License: mit
- Created: 2016-02-07T21:57:16.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-04-17T00:52:36.000Z (over 2 years ago)
- Last Synced: 2025-01-10T13:44:31.225Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 416 KB
- Stars: 72
- Watchers: 3
- Forks: 8
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - js-crdt - free Replication Data Type in TypeScript | widmogrod | 58 | (JavaScript)
README
# js-crdt [](https://travis-ci.org/widmogrod/js-crdt)
## Introduction
Real time collaboration is a fascinating concept.
Main purpose of this libriary it to explore applications of data structure called `CRDT` in context of real time collaboration
and learn answers to questions like:
- How to write collaborative applications?
- How to ensure strong eventual consistency?
- What are limirations of CRDTs?
> CRDT stands for Conflict-free Replication Data Type in JavaScript.
## Components
Compoents that can be found in this libriary:
- Data structures like `Immutable SortedSet`, `Immutable Lists`, `Immutable Maps`
- Partial ordering algorithms like `Vector clock`
- Higher order component `text` that encapsulates operation on plain text that can be used in collaborative editing.
## Applications
- https://github.com/widmogrod/notepad-app - Collaborative notepad app (demo).
## Development
Basic development requires at least `nodejs@8`.
To quickly start developmen run:
```
npm install
npm test
```
Before pull request run following commands to ensure code quality:
```
npm test
npm run lint
npm run dist
```