WebSocket connector for Ypy
Project description
Ypy-websocket
Ypy-websocket is an async WebSocket connector for Ypy.
Documentation: https://davidbrochart.github.io/ypy-websocket
Source Code: https://github.com/y-crdt/ypy-websocket
Ypy-websocket is a Python library for building WebSocket servers and clients that connect and synchronize shared documents. It can be used to create collaborative web applications.
The following diagram illustrates a typical architecture. The goal is to share a document among several clients.
Each client has an instance of a YDoc, representing their view of a document. A shared document also lives in a room on the server side. Conceptually, a room can be seen as the place where clients collaborate on a document. The WebSocket to which a client connects points to the corresponding room through the endpoint path. In the example below, clients A and B connect to a WebSocket at path room-1
, and thus both clients find themselves in a room called room-1
. All the YDoc
synchronization logic is taken care of by the WebsocketProvider.
Each update to a shared document can be persisted to disk using a store, which can be a file or a database.
flowchart TD
classDef room1 fill:#f96
classDef room2 fill:#bbf
A[Client A<br>room-1]:::room1 <-->|WebSocket<br>Provider| server(WebSocket Server)
B[Client B<br>room-1]:::room1 <-->|WebSocket<br>Provider| server
C[Client C<br>room-2]:::room2 <-->|WebSocket<br>Provider| server
D[Client D<br>room-2]:::room2 <-->|WebSocket<br>Provider| server
server <--> room1((room-1<br>clients: A, B)):::room1
server <--> room2((room-2<br>clients: C, D)):::room2
A <-..-> room1
B <-..-> room1
C <-..-> room2
D <-..-> room2
room1 ---> store1[(Store)]
room2 ---> store2[(Store)]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ypy_websocket-0.12.0.tar.gz
.
File metadata
- Download URL: ypy_websocket-0.12.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4a2d17250d5f65b690f0fd9fd920acd9cec7aa93d80b9a22bd0f73daf23f0b2 |
|
MD5 | db93c9f87cc1c497a60f0298949f1585 |
|
BLAKE2b-256 | 5f87c8ff869f25fd79abeb8ec78c07c9e9a02afd6bc29bd3d016e8c460e472a7 |
Provenance
File details
Details for the file ypy_websocket-0.12.0-py3-none-any.whl
.
File metadata
- Download URL: ypy_websocket-0.12.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59ee7fec99a121078397bb4c35d6b58a436e4e113744b2ed006e90939d27b4df |
|
MD5 | a63ef2c6bcc6a81ce70fea2c1cec7721 |
|
BLAKE2b-256 | c026d307907c52a7e3163b1e1311c8e3f9830723de3e7345ad24b55ce97bd2b3 |