skillfed

pycrdt-websocket

WebSocket connector for pycrdt

pycrdt-websocket v0.16.4 853.4K downloads/30d#4,896 on PyPI47
Permissive license MIT License Copyright (c) 2022 David Brochart Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) Active released

What it is and what it does

Pycrdt-websocket is a Python library for building WebSocket-based collaborative applications. It wraps the pycrdt CRDT library with async WebSocket transport, allowing multiple clients to connect to a server, each holding a local view of a shared document. The server maintains a room for each document, persisting updates to a store and broadcasting changes to all connected clients. The WebsocketProvider handles synchronization logic automatically, so developers focus on application logic rather than conflict resolution or network protocol details.

The library is designed for real-time collaborative editing scenarios—think shared documents, whiteboards, or any multi-user application where eventual consistency and offline-first behavior are acceptable. It depends on anyio for async I/O portability, pycrdt for the core CRDT data structures, and pycrdt-store for persistence. The package is actively maintained, supports Python 3.10 through 3.14, and carries no known security vulnerabilities.

Use it for:

  • Build a collaborative text editor where multiple users edit a document simultaneously with automatic conflict resolution.
  • Create a shared whiteboard or canvas application where drawing updates sync across all connected clients in real time.
  • Implement a multiplayer game or interactive application where game state is synchronized across players via WebSocket.
  • Build a note-taking or task-management app where changes persist and sync instantly to all open sessions.
  • Develop a collaborative spreadsheet or data-entry form where multiple users contribute to the same document concurrently.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Pycrdt-websocket provides an async WebSocket connector that synchronizes shared documents across multiple clients and a server using CRDT (Conflict-free Replicated Data Type) semantics.

Yes. Pycrdt-websocket is actively maintained, has low install friction, carries no known vulnerabilities, and solves a specific and well-defined problem—WebSocket-based CRDT synchronization for collaborative applications. The MIT license is permissive. Install it if you are building a real-time multi-user application and want automatic conflict resolution without managing your own sync protocol.

Install

pycrdt-websocket on PyPI

pip

pip install pycrdt-websocket

uv

uv add pycrdt-websocket

poetry

poetry add pycrdt-websocket

Installing pycrdt-websocket

Before you install

Low install friction with a pure-Python wheel and only three runtime dependencies (anyio, pycrdt, pycrdt-store). The package is actively maintained with a recent release and supports current Python versions.

License in practice

MIT License permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations—only attribution and inclusion of the license text are required.

Quickstart

pip install pycrdt-websocket

from pycrdt_websocket import WebsocketProvider
from pycrdt import Doc

# Client connects to WebSocket server at a room path
provider = WebsocketProvider("ws://localhost/room-1", Doc())

Requires Python 3.10 or later; WebSocket server endpoint must be running and accessible.

Verify before relying

  • Whether pycrdt-store supports the persistence backends (file vs. database) you need
  • Performance characteristics under high client concurrency or large document sizes
  • Whether the package handles network reconnection and conflict resolution transparently

Package facts

License MIT License Copyright (c) 2022 David Brochart Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — anyio, pycrdt-store, pycrdt
Maintenance actively maintained — 43 days since the last release
Last repo commit
First released
Downloads 853,435/month — #4,896 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pycrdt_websocket-0.16.4-py3-none-any.whl

Keywords: websocket, yjs

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

websocket crdt synchronizationcollaborative document syncasync websocket serverpycrdt websocket providerreal-time document sharingcrdt client servershared document collaboration
crdtcollaborative-editingwebsocket

More WWW/HTTP packages