skillfed

jupyter-ydoc

Document structures for collaborative editing using Ypy

jupyter-ydoc v4.1.1 1.6M downloads/30d#3,765 on PyPI46
Permissive license BSD 3-Clause License Active released

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 on this page — 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

jupyter-ydoc on PyPI

pip

pip install jupyter-ydoc

uv

uv add jupyter-ydoc

poetry

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 the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — anyio, pycrdt
Maintenance actively maintained — 39 days since the last release
Last repo commit
First released
Downloads 1,558,567/month — #3,765 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: jupyter_ydoc-4.1.1-py3-none-any.whl

Keywords: jupyter, pycrdt, yjs

Tags

jupyter collaborative editingyjs document structurespycrdt notebook syncjupyter real-time collaborationcrdt-based documentsjupyter ydoc structurescollaborative text editing jupyter
collaborative-editingcrdtjupyter-ecosystem

More Application Frameworks packages