nb-crdt
nb-crdt copied to clipboard
A block based Conflict-free Replicated Data Type
nb-crdt
A block based Conflict-free Replicated Data Type that enables collaborative editing across multiple participants allowing for flexible data sharing across spreadsheets, boards, rich text, and more.
Development
Prerequisites
npm install
Test
npm test
Checkout Points
for synchronization, just investigate
-
domain/entity/block
-
domain/entity/contribution
for making an editor, all the interfaces you need are in
-
domain/usecase/replica
Key Concepts
-
replicaID
- is an identifier for writers or devices
-
note
- consists of
blocks
-
block
-
block-props
- nested json object for block properties
- each leaf has its own stamp
-
replicaID
-
timestamp
-
-
text
- consists of
spans
-
span
-
point
- position identifier
-
content
-
attrs
- length
-
text-props
- flat json object
-
stamp
- string (UTF16)
-
-
- consists of
-
version
- per
replicaID
-
block-props
version -
text-points
orDB_RECORD-point
version
-
- per
-
- consists of