JupyterLite 0.2.0 is released πŸŽ‰

We are pleased to announce that JupyterLite 0.2.0 is finally released :tada:

JupyterLite is a JupyterLab distribution that runs entirely in the web browser, backed by in-browser language kernels such as Pyodide and Xeus Python.

See the original announcement post to learn more: JupyterLite: Jupyter ❀️ WebAssembly & Python

:bulb: Try it in your browser

:sparkles: Highlights

The main highlight in JupyterLite 0.2.0 is the update to JupyterLab 4. This brings compatibility with extensions that have been updated to JupyterLab 4 the past couple of months.

The RetroLab interface has now been removed in favor of Notebook 7 (which is the successor of RetroLab).

The full release changelog is available here: CHANGELOG β€” JupyterLite 0.2.0 documentation

:arrow_right: Migrating to 0.2.0

Thankfully, JupyterLite 0.2.0 itself does not introduce many breaking changes.

Most of the major changes come from the migration to JupyterLab 4 and Notebook 7. So if you update your deployment, make sure the extensions you are currently using are also compatible with JupyterLab 4.

There are few changes to the CLI and core packages that may affect downstream libraries building on JupyterLite, but they should be relatively minor.

Check out the migration guide in the documentation for more information: Migration Guide β€” JupyterLite 0.2.0 documentation

:crystal_ball: What’s coming next

Managing content and files in JupyterLite can still be quite challenging.

The next 0.3.0 release will try to focus on making it easier to integrate content from remote providers via extensions.

There will also be some investigations to support the latest RTC advancements currently available in JupyterLab 4, to enable Real Time Collaboration with JupyterLite.

So stay tuned!


Work may also now resume on Language Server Protocol integration. Getting this working in JupyterLite is probably a precursor to browser-based language servers packaged as lab extensions for server-hosted clients (JupyterLab and Notebook) without the seemingly-endless problems of deploying and configuring nodejs-based servers.

The mid-term goal is getting mostly-universal syntaxes (Markdown, JSON, YAML, TOML) shipped as part of JupyterLab itself, along with the features that support them (hover-for-definition, jump-to-definition, diagnostics, etc.).

Getting β€œreal” language servers in kernel languages running in JupyterLite will be… harder, likely best enabled in an achitecture-independent way over Jupyter comms. Some previous work should help enable this.

This is important for many cases where the Jupyter server (or JupyterLite β€œserver”) and kernel are running on different physical/virtual machines and file systems.