0.3.0

  • Presence rejects incompatible states in the caller before starting or updating a process. An invalid update leaves the presence process running with its previous state.
  • Add Slap.Yjs.Presence, which publishes and renews awareness for a server-side participant. It rejoins after the document server stops, and stopping the presence process removes its state. Transient rejoin failures retry with backoff, preserving the client id and latest state.
  • Add Slap.Yjs.Awareness for decoding and encoding y-protocols awareness entries. Hosts can use it to authorize client messages before passing them to a document server.

0.2.0

  • Slap.Yjs.DocServer.doc/2 returns the server's Yex.Doc, so server code can read and edit the document with y_ex's API. Its edits are relayed and stored like a client's updates.
  • Slap.Yjs.DocServer.encode_message/1 encodes the update and awareness messages a subscriber receives as y-protocols messages for its client.
  • Slap.Yjs.Docs.join/3 takes :assigns, a map that becomes state.assigns of the document server it starts. Callbacks in your document server module can read settings from it. If the server is already running, the option has no effect.
  • Uses slap_slatedb 0.2.0, which upgrades SlateDB from 0.16 to 0.17. Databases written by 0.1.0 open unchanged.

0.1.0

Initial release of slap_yjs.