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://jupyter-server.github.io/pycrdt-websocket

Source Code: https://github.com/jupyter-server/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.14.1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

pycrdt_websocket-0.14.1-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pycrdt_websocket-0.14.1.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for pycrdt_websocket-0.14.1.tar.gz
Algorithm Hash digest
SHA256 383c58e5dddb393ac66246a67eceae5f6e76bffb426dbe02e0360dfc4a61101a
MD5 68261f810ca76e9761750fcdb0b2df89
BLAKE2b-256 22fd785d2bdaca147053d4cec8ca7d7c7f0caf23de54b9930fbf5d1f44407c91

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycrdt_websocket-0.14.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e156fb57ca7034b71f946423ec64f256b2b07063914ee1d00984d7d3613ad18
MD5 b74695378a62b1f21211ab0354ada33b
BLAKE2b-256 260059bdb1e0087f09c9cdf6afdd3fb97896f17829b30fbe10976132aaa6fc36

See more details on using hashes here.

Provenance

Supported by

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