pycrdt-websocket
WebSocket connector for pycrdt
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-websocketuv
uv add pycrdt-websocketpoetry
poetry add pycrdt-websocketInstalling 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
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
ypy-websocketYpy-websocket is an async WebSocket connector…
permissive · top 5,000 on PyPI
pycrdtpycrdt provides Python bindings for Yrs, a CRDT…
permissive · top 5,000 on PyPI
pycrdt-storeProvides persistent storage backends for…
permissive · top 15,000 on PyPI
jupyter-ydocProvides pycrdt-based collaborative data…
permissive · top 5,000 on PyPI
loroLoro provides Python bindings for a CRDT…
unclear · top 5,000 on PyPI
jupyter-server-ydocAdds real-time collaborative editing to Jupyter…
permissive · top 5,000 on PyPI
jupyter-docproviderAdds real-time collaborative editing to…
permissive · top 15,000 on PyPI
y-pyYpy is a Python binding for Y-CRDT that…
permissive · top 5,000 on PyPI
jupyter-collaborationAdds real-time collaborative editing to…
permissive · top 15,000 on PyPI
websocketswebsockets is a library for building WebSocket…
permissive · top 100 on PyPI