JupyterCon 2023

David Brochart

Jupyter core developer.

The speaker's profile picture


Real Time Collaboration in Jupyter
Carlos Herrero, David Brochart, Trung Le

In the past years, real-time collaboration has become a must for any editor, a feature that users expect as core functionality in their daily editor. Sharing and collaborating on the same document with your colleagues or teachers increases productivity by improving the teamwork experience.

The adoption of real-time collaboration in JupyterLab has been a challenge for many developers over the years. From the very beginning, RTC was in JupyterLab's roadmap. Still, it was only in v3.x that it became a reality, and in v4.0, that it shows its real power. We want to describe the feature in detail with everyone to give extension developers the knowledge to leverage it into their plugins.

This talk will go through the RTC implementation and describe the role of the packages used.. The various entry points to use and extend real-time collaboration on documents will be highlighted. And it will show the corner cases and the restrictions it enforces.

Finally, we will offer a glimpse into how real-time collaboration works in JupyterCAD and JupyterLite. JupyterCAD is a JupyterLab extension using a non-default document type for 3D geometry modeling that supports the FreeCAD format. JupyterLite is a lightweight serverless version of JupyterLab, which changes the paradigm of collaboration. It adds a new challenge by removing the central authority that's the server, requiring the use of peer-to-peer communication to synchronize clients. The document is leveraging the real-time collaboration API to allow collaborative editing.

Community: Tools and Practices
Gaston Berger
Jupyter Server—the workhorse that drives nearly all Jupyter web applications
Zach Sailer, David Brochart

Jupyter Server is the core web server that powers most Jupyter web applications—it is widely used in research, education, and enterprise. Beyond the core web server, the Jupyter Server Project offers a powerful collection of plugins and extensions that enable deployers to build a Jupyter web application that best suits any workflow.

In this talk, we will lean heavily on live demos to showcase some of the core functionality, features, and strengths of Jupyter Server. To get the audience familiar with Jupyter Server, we will

  1. demonstrate how to install, launch, and configure a server.
  2. customize the server overriding one of Jupyter's core services.
  3. expand Jupyter Server's capabilities by authoring a server extension

We will, then, highlight some of the new features offered by Jupyter Server 2.0, including the

  1. identity and authorization APIs for secure access to a shared server,
  2. server-side features that enable real-time collaboration in Jupyter documents,
  3. event system that powers many features in JupyterLab and beyond.

Finally, we will share some perspective on the future direction of Jupyter Server and invite the audience to get involved with the project. We will share some unique ways that the Jupyter Server Team is encouraging and empowering new contributors through its weekly "Contributing Hour".

While Jupyter Server is fairly technical component in the Jupyter stack, we believe this talk offers helpful information for audiences of all levels. Particularly, if you are deploying Jupyter Server's for your research lab or company, or you are interested in becoming a Jupyter Server contributor, you will not want to miss this!

Louis Armand 2