Awesome
Yex
Yjs port for Elixir using y-crdt
A demo using the phoenix framework can be found here.
Installation
def deps do
[
{:y_ex, "~> 0.6.0"}
]
end
Feature parity
yjs <br/>(13.6) | yrs<br/>(0.18) | y_ex<br/>(0.6.5) | |
---|---|---|---|
YText: insert/delete | ✅ | ✅ | ✅ |
YText: formatting attributes and deltas | ✅ | ✅ | ✅ |
YText: embeded elements | ✅ | ✅ | ✅ |
YMap: update/delete | ✅ | ✅ | ✅ |
YMap: weak links | ✅ <br/> <small>(weak-links branch)</small> | ✅ | ❌ |
YArray: insert/delete | ✅ | ✅ | ✅ |
YArray & YText quotations | ✅ <br/> <small>(weak links branch)</small> | ✅ | ✅ |
YArray: move | ✅ <br/> <small>(move branch)</small> | ✅ | ✅ |
XML Element, Fragment and Text | ✅ | ✅ | ✅ |
Sub-documents | ✅ | ✅ | ❌ |
Shared collections: observers | ✅ | ✅ | ❌ |
Shared collections: recursive nesting | ✅ | ✅ | ❌ |
Document observers | ✅ | ✅ | ✅ |
Transaction: origins | ✅ | ✅ | ✅ |
Snapshots | ✅ | ✅ | ❌ |
Sticky indexes | ✅ | ✅ | ❌ |
Undo Manager | ✅ | ✅ | ❌ |
Awareness | ✅ | ✅ | ✅ |
Network provider: WebSockets | ✅ <br/> <small>(y-websocket)</small> | ✅ <br/> <small>(yrs-warp)</small> | ❌ |
Network provider: WebRTC | ✅ <br/> <small>(y-webrtc)</small> | ✅ <br/> <small>(yrs-webrtc)</small> | ❌ |