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/blockdomain/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 blockblock-props- nested json object for block properties
- each leaf has its own stamp
replicaIDtimestamp
text- consists of
spans spanpoint- position identifier
contentattrs- length
text-props- flat json object
stamp
- string (UTF16)
- consists of
version- per
replicaIDblock-propsversiontext-pointsorDB_RECORD-pointversion
- per
- consists of