A WebSocket-based implementation of the 'automerge-repo' synchronization protocol used by 'sync.automerge.org'. Acts as a sync server, enabling 'R' to serve as a synchronization hub for 'Automerge' clients in 'JavaScript', 'Rust', and other languages, and as a client for fetching, editing, and synchronizing documents hosted on remote servers.
Main Functions
sync_server()Create a new sync server with
$start()and$close()methods
Document Management
create_document()Create a new document
get_document()Retrieve a document by ID
list_documents()List all document IDs
generate_document_id()Generate a new document ID
Protocol
The server implements the automerge-repo sync protocol over WebSockets. Messages are CBOR-encoded and include:
- join/peer
Handshake messages for connection establishment
- request/sync
Document synchronization messages
- ephemeral
Transient messages forwarded without persistence
- error
Error notifications
Example
# Create and start a server
server <- sync_server()
server$start()
server$url
# Stop when done
server$close()Author
Maintainer: Charlie Gao charlie.gao@posit.co (ORCID)
Authors:
Charlie Gao charlie.gao@posit.co (ORCID)
Other contributors:
Posit Software, PBC (ROR) [copyright holder, funder]