pycrdt
Python bindings for Yrs
Decision gist · record as of 2026-08-14
Yes, if you need CRDT functionality in Python. pycrdt is actively maintained, permissively licensed, and backed by a mature Rust implementation (Yrs). Medium install friction is manageable for most environments. No known vulnerabilities. Best suited for developers building collaborative or distributed systems who want production-grade CRDT semantics without implementing them from scratch.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; compiled wheels are available for most platforms but installation may require a C compiler on unsupported architectures.
- Medium install friction due to compiled wheels across many platforms (CPython 3.10–3.14, PyPy, multiple architectures).
- Active maintenance with a recent release (15 days ago) and steady repository activity; 203 stars indicate modest but engaged adoption.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive) means you can use, modify, and distribute pycrdt with minimal restrictions, making it suitable for both open-source and commercial projects.
last release 2026-07-30 (15 days) · last repo commit 2026-08-14 · 203 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,311,618 downloads/mo, #3,147 on PyPI
Alternatives
Verify before relying
pip install pycrdt
import pycrdt
# Create a CRDT document
doc = pycrdt.YDoc()
text = doc.get_text('shared_text')
text.extend('Hello')- Whether pycrdt's API surface and performance characteristics are suitable for your specific collaboration use case.
- How pycrdt handles network synchronization and persistence—whether it includes built-in transport or requires external integration.
- Whether the Yrs upstream library's design decisions and maturity level meet your production requirements.
What it is and what it does
pycrdt is a Python binding to Yrs, a Rust-based CRDT library that provides conflict-free replicated data types for building collaborative applications. It allows multiple clients to modify shared data structures simultaneously, with automatic conflict resolution ensuring all replicas converge to the same state without explicit coordination. The package exposes Yrs's core data types and operations through a Python API, making CRDT functionality accessible to Python developers building real-time collaborative features.
The library depends on anyio, exceptiongroup, and typing-extensions for async support and compatibility across Python versions. It is actively maintained, supports Python 3.10 through 3.14, and is distributed as compiled wheels for most common platforms. With over 2 million monthly downloads, it occupies a stable position in the top 5000 PyPI packages, indicating real-world adoption despite being in Beta development status.
Use it for
- Building real-time collaborative editing features (e.g., shared documents, whiteboards) where multiple users edit simultaneously.
- Implementing distributed state synchronization in peer-to-peer or decentralized applications without a central authority.
- Creating offline-first applications that merge local and remote changes automatically when connectivity is restored.
- Designing multiplayer game state management where client-side changes must converge across all players.
- Building collaborative note-taking or task-management systems with automatic conflict resolution.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need CRDT functionality in Python.
pycrdt is actively maintained, permissively licensed, and backed by a mature Rust implementation (Yrs). Medium install friction is manageable for most environments. No known vulnerabilities. Best suited for developers building collaborative or distributed systems who want production-grade CRDT semantics without implementing them from scratch.
Install
pycrdt on PyPI
Before you install
Medium install friction due to compiled wheels across many platforms (CPython 3.10–3.14, PyPy, multiple architectures). Active maintenance with a recent release (15 days ago) and steady repository activity; 203 stars indicate modest but engaged adoption.
Requires Python 3.10 or later; compiled wheels are available for most platforms but installation may require a C compiler on unsupported architectures.
License in practice
MIT license (permissive) means you can use, modify, and distribute pycrdt with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install pycrdt
import pycrdt
# Create a CRDT document
doc = pycrdt.YDoc()
text = doc.get_text('shared_text')
text.extend('Hello')
Verify before relying
- Whether pycrdt's API surface and performance characteristics are suitable for your specific collaboration use case.
- How pycrdt handles network synchronization and persistence—whether it includes built-in transport or requires external integration.
- Whether the Yrs upstream library's design decisions and maturity level meet your production requirements.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesanyioexceptiongrouptyping-extensions |
| Maintenance | Actively maintained 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,311,618 / month, #3,147 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | 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.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: Rust |
Evidence: pycrdt-0.14.2-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pycrdt-0.14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; pycrdt-0.14.2-cp310-cp310-musllinux_1_2_aarch64.whl; pycrdt-0.14.2-cp310-cp310-musllinux_1_2_armv7l.whl; pycrdt-0.14.2-cp310-cp310-musllinux_1_2_i686.whl; pycrdt-0.14.2-cp310-cp310-musllinux_1_2_x86_64.whl; pycrdt-0.14.2-cp310-cp310-win32.whl; pycrdt-0.14.2-cp310-cp310-win_amd64.whl; pycrdt-0.14.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pycrdt-0.14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “crdt python bindings”
- pycrdtpycrdt provides Python bindings for Yrs, a CRDT (Conflict-free…
- loroLoro provides Python bindings for a CRDT (Conflict-free Replicated…
- pycrdt-storeProvides persistent storage backends for pycrdt, a CRDT…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also loro · pycrdt-store · y-py · pycrdt-websocket · jupyter-ydoc · jupyter-server-ydoc · jupyter-docprovider · jupyter-collaboration · ypy-websocket · jupyter-collaboration-ui