ypywidgets
is a communication backend between a Jupyter kernel and clients. It allows to synchronize data structures that can be modified concurrently, and automatically resolves conflicts. To do so, it uses:
- the Jupyter kernel Comm protocol as the transport layer, and the comm implementation of it.
- the pycrdt CRDT implementation.
- the reacttrs library that implements the observer pattern and validation.
It is a replacement for (a part of) ipywidgets. When used with yjs-widgets, it supports JupyterLab clients that implement widgets. The difference with ipywidgets
is that these widgets are collaborative: they can be manipulated concurrently from the kernel or from any client. The CRDT algorithm ensures that a widget state will eventually be consistent across all clients.