Skip to main content

WebSocket connector for Ypy

Project description

Ypy-websocket

Ypy-websocket is an async WebSocket connector for Ypy.

Build Status Code style: black


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


Download files

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

Source Distribution

ypy_websocket-0.12.0.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

ypy_websocket-0.12.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

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

Hashes for ypy_websocket-0.12.0.tar.gz
Algorithm Hash digest
SHA256 c4a2d17250d5f65b690f0fd9fd920acd9cec7aa93d80b9a22bd0f73daf23f0b2
MD5 db93c9f87cc1c497a60f0298949f1585
BLAKE2b-256 5f87c8ff869f25fd79abeb8ec78c07c9e9a02afd6bc29bd3d016e8c460e472a7

See more details on using hashes here.

Provenance

File details

Details for the file ypy_websocket-0.12.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ypy_websocket-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59ee7fec99a121078397bb4c35d6b58a436e4e113744b2ed006e90939d27b4df
MD5 a63ef2c6bcc6a81ce70fea2c1cec7721
BLAKE2b-256 c026d307907c52a7e3163b1e1311c8e3f9830723de3e7345ad24b55ce97bd2b3

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