Ywasm
This project is a wrapper around Yrs and targets Web Assembly bindings.
It's a library used on collaborative document editing using Conflict-free Replicated Data Types. This enables to provide a shared document editing experience on a client devices without explicit requirement for hosting a single server - CRDTs can resolve potential update conflicts on their own with no central authority - as well as provide first-class offline editing capabilities, where document replicas are modified without having connection to each other, and then synchronize automatically once such connection is enabled.
Documentation
Example
import from 'ywasm';
const doc =
const text = doc.
// append text to our collaborative document
doc.
// simulate update with remote peer
const remoteDoc =
const remoteText = remoteDoc.
// in order to exchange data with other documents
// we first need to create a state vector
const remoteSV =
// now compute a differential update based on remote document's state vector
const update =
// both update and state vector are serializable, we can pass them over the wire
// now apply update to a remote document
const str = remoteDoc.
console.log