WebSocket connector for pycrdt
Project description
Pycrdt-websocket
Pycrdt-websocket is an async WebSocket connector for pycrdt.
Documentation: https://y-crdt.github.io/pycrdt-websocket
Source Code: https://github.com/y-crdt/pycrdt-websocket
Pycrdt-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 Doc, 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 Doc 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycrdt_websocket-0.16.0.tar.gz.
File metadata
- Download URL: pycrdt_websocket-0.16.0.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d4d830f41028c55cc9877635f73f94f49131ca73ffac7353d0be421150d0fd
|
|
| MD5 |
1666fcbecc327216d301e02d9123808b
|
|
| BLAKE2b-256 |
4f91a412af8792af22e7e67a7424e7b6c64baada4897777fed885a2cb825155d
|
Provenance
The following attestation bundles were made for pycrdt_websocket-0.16.0.tar.gz:
Publisher:
publish.yml on y-crdt/pycrdt-websocket
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycrdt_websocket-0.16.0.tar.gz -
Subject digest:
89d4d830f41028c55cc9877635f73f94f49131ca73ffac7353d0be421150d0fd - Sigstore transparency entry: 234924044
- Sigstore integration time:
-
Permalink:
y-crdt/pycrdt-websocket@bdaf426b6992ca8a881e808b6175ed94dd055925 -
Branch / Tag:
refs/tags/0.16.0 - Owner: https://github.com/y-crdt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bdaf426b6992ca8a881e808b6175ed94dd055925 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pycrdt_websocket-0.16.0-py3-none-any.whl.
File metadata
- Download URL: pycrdt_websocket-0.16.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b9ffe47c40867b7e637922680e93471fd801b6e8d6c9f6aa688fd2a17351141
|
|
| MD5 |
f7505fe6f0823cbd8510d43ed3ef32db
|
|
| BLAKE2b-256 |
f4b7a1dd4d149fa6279f321bd7dacab66ac31e728fbae175a7d75cf8211b1f30
|
Provenance
The following attestation bundles were made for pycrdt_websocket-0.16.0-py3-none-any.whl:
Publisher:
publish.yml on y-crdt/pycrdt-websocket
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pycrdt_websocket-0.16.0-py3-none-any.whl -
Subject digest:
4b9ffe47c40867b7e637922680e93471fd801b6e8d6c9f6aa688fd2a17351141 - Sigstore transparency entry: 234924052
- Sigstore integration time:
-
Permalink:
y-crdt/pycrdt-websocket@bdaf426b6992ca8a881e808b6175ed94dd055925 -
Branch / Tag:
refs/tags/0.16.0 - Owner: https://github.com/y-crdt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bdaf426b6992ca8a881e808b6175ed94dd055925 -
Trigger Event:
push
-
Statement type: