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:
- Introduction to emscripten-forge:
- Overview of the high-level architecture.
- How to contribute new packages to the distribution.
- Xeus-based Kernels in JupyterLite:
- Architecture of Xeus and its role in JupyterLite.
- Processing conda WebAssembly packages to populate the kernel environment.
- Packaging R for WebAssembly:
- Challenges encountered, particularly with compiling Fortran to WebAssembly.
- Contributions made to LLVM and Flang to enable R compilation for WebAssembly.
- 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.