Expanding Programming Language Support in JupyterLite
2025-09-30 , Louis Armand 1 - Est

JupyterLite is a web-based distribution of JupyterLab that runs entirely in the browser, leveraging WebAssembly builds of language kernels and interpreters.

In this talk, we introduce emscripten-forge, a conda-based software distribution tailored for WebAssembly and the web browser. Emscripten-forge empowers several JupyterLite kernels, including:

  • xeus-Python for Python,
  • xeus-R for R,
  • xeus-Octave for GNU Octave.

These kernels cover some of the most popular languages in scientific computing.

Additionally, emscripten-forge includes builds for various terminal applications, utilized by the Cockle shell emulator to enable the JupyterLite terminal.


Presentation Outline:

  1. Introduction to emscripten-forge:
    • Overview of the high-level architecture.
    • How to contribute new packages to the distribution.
  2. Xeus-based Kernels in JupyterLite:
    • Architecture of Xeus and its role in JupyterLite.
    • Processing conda WebAssembly packages to populate the kernel environment.
  3. Packaging R for WebAssembly:
    • Challenges encountered, particularly with compiling Fortran to WebAssembly.
    • Contributions made to LLVM and Flang to enable R compilation for WebAssembly.
  4. GNU Octave:
    • Inclusion in emscripten-forge.
    • Additional Fortran-related adjustments.
      5 JupyterLite Terminal:
    • Overview of the JupyterLite terminal and the Cockle JavaScript shell.
    • Packaging common terminal applications for the web using emscripten-forge

I am an OpenSource Software Developer working for QuantStack on the WebAssembly Stack

Ian Thomas

Isabel Paredes is a software developer at QuantStack.

Antoine is a Scientific Software Engineer at Quantstack where he led devlopment efforts on the Mamba package manager, as well as on the Xeus-Octave Jupyter kernel and Xtensor. He obtained a Ph.D. in combinatorial optimization and machine learning from École Polytechnique de Montréal in 2021 where he worked at the interplay of deep learning and operations research. During that time, he developed Ecole a mixed Python/C++ library to ease the research on the use of machine learning methods for decision making inside mathematical solvers.