JupyterLite: Honey, I shrunk the JupyterLab environment


The Project Jupyter team has disclosed details of JupyterLite — a JupyterLab distribution it is developing that runs entirely inside a web browser. The aim of the project is to provide a JupyterLab environment that is instantly accessible in a browser, without having to install anything on the endpoint system.

JupyterLite is apparently a reboot of several previous attempts to create a full static Jupyter distribution that runs in the browser, without having to start the Python Jupyter Server on the host machine. Details of the project were announced in a posting on the Jupyter Blog by Jeremy Tuloup, Jupyter Core Developer and Distinguished Contributor.

“JupyterLite can easily be deployed as a static web site. That’s it — no server, no complicated setup, no scalability issue. Just a plain HTTP server to serve static files to users,” Tuloup said.

With its ease of deployment and low barrier to entry, it is hoped that JupyterLite will prove to be a good fit for a wide range of use cases — especially in education, where it could provide easy access to teaching materials and computing environments.

Although JupyterLite has been built from scratch, it reuses many JupyterLab plugins and components, according to Tuloup, and also includes the RetroLab notebook interface.

JupyterLite ships by default with Pyolite, a Python kernel backed by Pyodide. Pyodide was created by Mozilla, and comprises the CPython 3.8 interpreter compiled to WebAssembly code, which allows Python to run in the browser.

It is possible to support other kernels running in the browser with JupyterLite, but the default distribution currently includes a JavaScript and a p5 kernel. Both of these run in an IFrame as the code execution sandbox.

Several visualisation libraries such as Altair and Plotly are also supported, allowing for quick and convenient graph creation and plots directly in the browser.

JupyterLite is still under development, with numerous improvements planned for the next iterations, according to Tuloup. These include tooling for authoring custom in-browser kernels, and reusing the JupyterLab federated (prebuilt) extension system.

One of the goals of the project is also to allow anyone to create a custom distribution with a specific set of plugins and extensions they would like to use. For now, this requires using the JupyterLite command line interface, but the intention is to provide a more user-friendly way of exporting an entire custom JupyterLite web site.

However, anyone interested in JupyterLite can test it out now in a web browser using this link.