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.15.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

pycrdt_websocket-0.15.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pycrdt_websocket-0.15.1.tar.gz
Algorithm Hash digest
SHA256 a20b6c6c4926c57176c23bdaee79b064297c50acd251b55f29c7a9ee7068a6c8
MD5 12d7385991ea14eb7f7ca0bbe4e070cf
BLAKE2b-256 ed82db825e871d550a2a99d9f4ca5b6998c1e90e065f0e168818474eabf05500

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycrdt_websocket-0.15.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4b5c5a7001358b61b14b3ac1c4a13db1d05678f35836e9e5ee829228ce736caf
MD5 32dd6f28ca8103dab28cf83de1e74f9d
BLAKE2b-256 590e63241e1f042a55e1cfdfbb2286593fdfd3699c51182e0544cd64c0bfbceb

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