Skip to main content

WebSocket connector for pycrdt

Project description

Pycrdt-websocket

Pycrdt-websocket is an async WebSocket connector for pycrdt.

Build Status Code style: black


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycrdt_websocket-0.16.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pycrdt_websocket-0.16.3-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file pycrdt_websocket-0.16.3.tar.gz.

File metadata

  • Download URL: pycrdt_websocket-0.16.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pycrdt_websocket-0.16.3.tar.gz
Algorithm Hash digest
SHA256 dd2723d531d9ca7048a67dd8d27c63e4362f5d909ca8c97efcfb2bd1d15d8d2a
MD5 d6d45d4673bc3830c135b472b276fa1d
BLAKE2b-256 a40fe9a9f3b298d6e6b6abacf8a41ea7f4f697aa8116215a15c8674fa1445f39

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycrdt_websocket-0.16.3.tar.gz:

Publisher: publish.yml on y-crdt/pycrdt-websocket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycrdt_websocket-0.16.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pycrdt_websocket-0.16.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc3585705d3c2060b24ec329bb7c2065dae9dc50eb7d85854dcf0ed018958c4b
MD5 5d88383ab4a7d66fcfe2852e41fd87a9
BLAKE2b-256 a3c6c4176d2093bce6304e9f34470aae7f733c3818d3e7b54bf31892f1b3429e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycrdt_websocket-0.16.3-py3-none-any.whl:

Publisher: publish.yml on y-crdt/pycrdt-websocket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page