{"id":15043351,"url":"https://github.com/datalayer/jupyter-rtc-test","last_synced_at":"2025-04-14T20:51:46.277Z","repository":{"id":151291155,"uuid":"620395065","full_name":"datalayer/jupyter-rtc-test","owner":"datalayer","description":"💪 Stress tests for 🪐 Jupyter 🧑‍🤝‍🧑 Real Time Collaboration (RTC).","archived":false,"fork":false,"pushed_at":"2024-11-09T15:50:19.000Z","size":2779,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T09:04:23.647Z","etag":null,"topics":["jupyter","python","rtc","stresstest","test","yjs"],"latest_commit_sha":null,"homepage":"https://datalayer.tech","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datalayer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["datalayer"]}},"created_at":"2023-03-28T15:41:34.000Z","updated_at":"2024-12-31T13:42:05.000Z","dependencies_parsed_at":"2024-03-17T15:26:43.978Z","dependency_job_id":"c9a2b741-9f8a-43b2-9280-c52322134d6e","html_url":"https://github.com/datalayer/jupyter-rtc-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer%2Fjupyter-rtc-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer%2Fjupyter-rtc-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer%2Fjupyter-rtc-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalayer%2Fjupyter-rtc-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datalayer","download_url":"https://codeload.github.com/datalayer/jupyter-rtc-test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248960952,"owners_count":21189990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jupyter","python","rtc","stresstest","test","yjs"],"created_at":"2024-09-24T20:48:53.591Z","updated_at":"2025-04-14T20:51:46.259Z","avatar_url":"https://github.com/datalayer.png","language":"Python","funding_links":["https://github.com/sponsors/datalayer"],"categories":[],"sub_categories":[],"readme":"[![Datalayer](https://assets.datalayer.tech/datalayer-25.svg)](https://datalayer.io)\n\n[![Become a Sponsor](https://img.shields.io/static/v1?label=Become%20a%20Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026style=flat\u0026color=1ABC9C)](https://github.com/sponsors/datalayer)\n\n# 🪐 🧑‍🤝‍🧑 💪 Jupyter RTC Test\n\n\u003e Stress tests for Jupyter Real Time Collaboration (RTC).\n\nThe 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](./docs/why.md).\n\nYou can run the stress tests from the CLI (Command Line Interface) or from a UI (User Interface).\n\n\u003cdiv align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Jupyter RTC Test\" src=\"https://datalayer-jupyter-examples.s3.amazonaws.com/jupyter-rtc-test.gif\" /\u003e\n\u003c/div\u003e\n\n## Distributed Actors\n\nThe tests aims to replicate real life cases, meaning that most of them are running in a distributed way.\n\nYou 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.\n\n\u003cdiv align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Jupyter RTC Test Actors\" src=\"https://raw.githubusercontent.com/datalayer/jupyter-rtc-test/main/style/svg/jupyter-rtc-test-actors.image.svg\" /\u003e\n\u003c/div\u003e\n\n## Discovered issues and Explored solutions\n\nWe maintain [a list of discovered issues](./docs/issues.md) as well a [explored solutions](./docs/solutions.md).\n\n## Technical Stack\n\nThe Jupyter RTC technical stack is spread across various repositories listed here (if you want to learn more, read the [architecture document](./docs/architecture.md))\n\n- Yjs https://github.com/yjs/yjs\n- Yrs https://github.com/y-crdt/y-crdt/tree/main/yrs\n- Ywasm https://github.com/y-crdt/y-crdt/tree/main/ywasm\n- Ypy https://github.com/y-crdt/ypy\n- Ystore see https://github.com/y-crdt/ypy-websocket/issues/19\n- Ypy Websocket https://github.com/y-crdt/ypy-websocket\n- Jupyter YDoc https://github.com/jupyter-server/jupyter_ydoc\n- Jupyter Collaboration https://github.com/jupyterlab/jupyter_collaboration\n\n\u003cdiv align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Jupyter RTC Stack\" src=\"https://raw.githubusercontent.com/datalayer/jupyter-rtc-test/main/style/svg/jupyter-rtc-stack.image.svg\" /\u003e\n\u003c/div\u003e\n\n## Community\n\nThe RTC stress test are being discussed [in an issue on the official JupyterLab repository](https://github.com/jupyterlab/jupyterlab/issues/14532).\n\u003c!--\n## Install\n\n[Install](./docs/install.md) the tool directly from PyPI and [launch it](./docs/use.md) from the command line.\n--\u003e\n## Develop\n\nSetup your [environment](./docs/environment.md) to run the [tests](./docs/tests.md).\n\nYou can also use the [user interface](./docs/ui.md) if you prefer.\n\n## About CRDT\n\nYou can read more about the Conflict free Replicated Data Types (CRDT).\n\n- [CRDT.tech](https://crdt.tech)\n- [JupyterCon 2020 - Jupyter Realtime Collaboration](https://www.youtube.com/watch?v=mUGUxWZjR7E)\n- [Wikipedia](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type)\n- [Y.js](https://docs.yjs.dev) used as CRDT implementation.\n\n## ⚖️ License\n\nCopyright (c) 2023 Datalayer, Inc.\n\nReleased under the terms of the BSD 3-Clause license (see [LICENSE](./LICENSE)).\n\nThis repository contains source code taken from the various repositories under `BSD-3` or `MIT` license. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalayer%2Fjupyter-rtc-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatalayer%2Fjupyter-rtc-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalayer%2Fjupyter-rtc-test/lists"}