Johan Mabille is a Technical Director specialized in high-performance computing in C++. He holds master's degree in computer science from Centrale-Supelec.
As an open source developer, Johan coauthored xtensor, xeus, and xsimd. He is also involved in the development of mamba. Johan is also active in frontend projects, he participated to the development of the debugger in JupyterLab and recently made the migration to CodeMirror 6.
Prior to joining QuantStack, Johan was a quant developer at HSBC.
The Jupyter ecosystem is vast and complex, with many different projects and libraries that work together to support interactive computing and data science. In this talk, we will navigate and explore the Jupyter ecosystem, highlighting the key projects and libraries that make up the ecosystem and discussing how they relate to each other.
We will start by introducing the core Jupyter projects, including the Jupyter Notebook and JupyterLab, and explaining how they provide a platform for interactive computing and data visualization. We will then discuss some of the key sub-projects within the Jupyter ecosystem, such as JupyterHub for enabling multi-user access to notebooks and nbconvert for converting notebooks to other formats, and we will explain how they fit into the overall landscape of Jupyter.
Next, we will delve into the underlying projects and libraries that make Jupyter and its related projects possible, such as the Jupyter server, the core APIs projects and the traitlets library. We will discuss the different protocols used for communication between the applications and the kernels, and show how it makes Jupyter agnostic to the language. We will also cover some of the key technologies used by Jupyter and its related projects, such as the Tornado web framework or the ZeroMQ messaging library, and we will explain how these technologies fit into the Jupyter landscape.
Throughout the talk, we will provide examples of how these tools and technologies can be used in practice and discuss the latest developments and future directions of the Jupyter ecosystem. By the end of the talk, attendees will have a better understanding of the Jupyter ecosystem and how its various projects and libraries fit together to enable interactive computing and data science.
- Introduction to the Jupyter ecosystem
- Overview of the core Jupyter projects (Jupyter Notebook, JupyterLab)
- Overview of key sub-projects within the Jupyter ecosystem (JupyterHub, nbconvert)
- Explanation of the underlying projects and libraries used by Jupyter (Jupyter server, jupyter_client, traitlets)
- Introduction to the Jupyter protocol and the widget protocol
- Overview of key technologies used by Jupyter and its related projects (ZeroMQ, Tornado framework)
- Discussion of the latest developments and future directions of the Jupyter ecosystem
- Conclusion and next steps for learning more about the Jupyter ecosystem
Xeus, a native implementation of the Jupyter protocol, facilitates the authoring of new kernels, especially for languages for which the interpreter has a C or a C++ API. Kernel authors can focus on the language-specific parts of their work and don’t have to deal with the protocol. The number of flurishing kernels based on xeus these last years has proven it to be a reliable component of the Jupyter ecosystem.
In this talk, we will talk about the last evolutions of the xeus stack, and how the flexible architecture of xeus made it easy to develop kernels that run entirely in the browser.
We will first give an overview of the xeus ecosystem and the different kernels based on it. We will then dive into the detail of xeus and its architecture, and how users can author new kernels with the library.
In the next section, we will discuss the specifity of WASM kernels, and demonstrate how the change in xeus made it easy to generate kernels that run entirely in the browser.
We will conclude with a roadmap for future developments.
- Overview of the xeus-based kernels
- Details of the xeus architecture
- Specificity of WASM kernels and how we adapted xeus
- WASM kernel generation