Client

A client connects their YDoc through a WebsocketProvider.

Here is a code example using the websockets library:

import asyncio
import y_py as Y
from websockets import connect
from pycrdt_websocket import WebsocketProvider

async def client():
    ydoc = Y.YDoc()
    async with (
        connect("ws://localhost:1234/my-roomname") as websocket,
        WebsocketProvider(ydoc, websocket),
    ):
        # Changes to remote ydoc are applied to local ydoc.
        # Changes to local ydoc are sent over the WebSocket and
        # broadcast to all clients.
        ymap = ydoc.get_map("map")
        with ydoc.begin_transaction() as t:
            ymap.set(t, "key", "value")

        await asyncio.Future()  # run forever

asyncio.run(client())