Stress tests for Jupyter Real Time Collaboration (RTC).
The goal of this repository is to stress test the Real Time Collaboration (RTC) feature of JupyterLab and Jupyter Server and is a needed requirement to avoid users having issues when they enable RTC.
You can run the stress tests from the CLI (Command Line Interface) or from a UI (User Interface).
The tests aims to replicate real life cases, meaning that most of them are running in a distributed way.
You can run the tests on a standalone (local laptop or CI) machine, in which case the distributed behavior is simulated. You can also run the tests in a real a distributed environment like Kubernetes, this however requires you to setup additional infrastructure and configuration. Please note you can also run the Kubernetes flavored tests on a local Minikube instance.
We maintain a list of discovered issues as well a explored solutions.
The Jupyter RTC technical stack is spread across various repositories listed here (if you want to learn more, read the architecture document)
- Yjs https://github.com/yjs/yjs
- Yrs https://github.com/y-crdt/y-crdt/tree/main/yrs
- Ywasm https://github.com/y-crdt/y-crdt/tree/main/ywasm
- Ypy https://github.com/y-crdt/ypy
- Ystore see y-crdt/ypy-websocket#19
- Ypy Websocket https://github.com/y-crdt/ypy-websocket
- Jupyter YDoc https://github.com/jupyter-server/jupyter_ydoc
- Jupyter Collaboration https://github.com/jupyterlab/jupyter_collaboration
The RTC stress test are being discussed in an issue on the official JupyterLab repository.
Setup your environment to run the tests.
You can also use the user interface if you prefer.
You can read more about the Conflict free Replicated Data Types (CRDT).
- CRDT.tech
- JupyterCon 2020 - Jupyter Realtime Collaboration
- Wikipedia
- Y.js used as CRDT implementation.
Copyright (c) 2023 Datalayer, Inc.
Released under the terms of the BSD 3-Clause license (see LICENSE).
This repository contains source code taken from the various repositories under BSD-3
or MIT
license.