--- id: jupyter-ydoc version: "4.1.1" license: BSD 3-Clause License license_treatment: permissive maintenance: active --- # jupyter-ydoc — Document structures for collaborative editing using Ypy License: permissive · Maintenance: active · Downloads: 1.6M/mo ## What it is and what it does jupyter_ydoc wraps pycrdt's conflict-free replicated data types (CRDTs) into document classes tailored for the Jupyter ecosystem. It provides three built-in document types: YNotebook for notebook files, YUnicode for text documents, and YBlob for binary data. Each is designed to support collaborative real-time editing where changes from multiple users merge automatically without conflicts. The package uses an entry-point system to make documents discoverable and extensible. You can load the built-in documents directly or register your own custom document types via pyproject.toml configuration. This design allows Jupyter applications and extensions to work with collaborative documents in a pluggable way, without hard-coding specific document implementations. Use it for: - Enable real-time collaborative notebook editing in JupyterHub or JupyterLab with automatic conflict resolution. - Build custom collaborative text editors for Jupyter that sync changes across multiple users without manual merging. - Create Jupyter extensions that need to store and synchronize binary data structures across collaborative sessions. - Implement custom document types for domain-specific Jupyter workflows by registering them via the jupyter_ydoc entry point. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides pycrdt-based collaborative data structures for Jupyter documents, including notebooks, text files, and binary blobs, enabling real-time synchronized editing. Yes, if you are building or extending Jupyter for collaborative use. The package is actively maintained, has low installation friction, and provides a clean abstraction over CRDTs for Jupyter's document types. It is a foundational dependency for collaborative Jupyter features rather than a standalone tool, so install it only if your project explicitly needs real-time document synchronization. ## Install pip install jupyter-ydoc uv add jupyter-ydoc poetry add jupyter-ydoc ## Installing jupyter-ydoc Before you install: Low friction installation with only two runtime dependencies (anyio and pycrdt). Active maintenance with a recent release 39 days ago and current repository activity. License in practice: BSD 3-Clause License permits commercial and private use with minimal restrictions; suitable for most projects. Quickstart: pip install jupyter-ydoc from jupyter_ydoc import YNotebook, YUnicode, YBlob notebook = YNotebook() text_doc = YUnicode() blob_doc = YBlob() Requires Python 3.10 or later. Verify before relying: - Whether these document structures integrate seamlessly with existing Jupyter server infrastructure without additional configuration. - Performance characteristics when handling large notebooks or concurrent edits from many users. - Whether custom document types registered via entry points work reliably in production Jupyter deployments. ## Package facts - License: BSD 3-Clause License (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 1.6M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags jupyter collaborative editing, yjs document structures, pycrdt notebook sync, jupyter real-time collaboration, crdt-based documents, jupyter ydoc structures, collaborative text editing jupyter, collaborative-editing, crdt, jupyter-ecosystem [View on SkillFed](https://skillfed.io/packages/jupyter-ydoc) · [View on PyPI](https://pypi.org/project/jupyter-ydoc/)