Enabling real-time collaboration on the Web
A replacement of Operational Transformation using a framework for peer-to-peer collaborative editing on arbitrary data types
5. • Text
• Json
• XML (DOM)
But: possible to customize it for arbitrary ones!
5y-js.org/examples
6. • XMPP
– Uses XEP-0045 (Multi-User Chat)
– Prosody XMPP server
• WebRTC
– Uses PeerJS for messaging
• .. (you can create your own connector)
6
1.var connector = Y.XMPP().join("my-roomname");
y-js.org/examples
7. • Similar behavior for other data types
7
1.var y = new Y(connector); //yjs object
//add a new property
2.y.val("new_object",“a_value“);
3.y.val("number",4)
4.y.val() // => {string:“a_value“,number:4}
y-js.org/examples
8. • Real-time collaboration on arbitrary data types
• P2P message propagation
• Arbitrary communication protocols
– XMPP Connector: scalable (>1000 users)
– WebRTC: fast
• Easy to use
• Offline editing (unimplemented)
• Undo (unimplemented)
Try Yjs yourself:
https://github.com/rwth-acis/yjs
8