I’m Akshay Agrawal. Myles Scolnick and I develop marimo, an open-source reactive notebook for Python that’s reproducible, stored as a Python file, executable as a script, and deployable as an interactive web app. I’m following up from a GitHub discussion in the Pyodide repo about authoring a guest blog post.
One of our goals with marimo is to make computing more accessible and portable. To that end, Pyodide has been invaluable: we recently ported our runtime to be compatible with Pyodide, making it possible to run marimo notebooks entirely in the browser. We’ve made this Pyodide-powered marimo notebook accessible via a playground at https://marimo.app. Our documentation outlines ways that our WASM notebook can be used.
Running entirely in the browser brings several benefits to our users. Thanks to Pyodide, our users can get started with marimo without even having Python on their machine. They can also easily share live, interactive versions of their notebooks/apps and embed notebooks in documentation and blog posts. Pyodide-powered notebooks are also in some cases snappier than notebooks powered by remote kernels, since they eliminate overheads associated with networking. Pyodide also helps with portability — one of our users even managed to get marimo working on Puter, with little effort.
We would love to write a blog post that elaborates on these benefits and discusses the changes that were required to make marimo compatible with Pyodide. Here is an outline:
A brief discussion on how Python notebooks, including marimo, are traditionally run — ie, frontend and backend Python kernel intermediated by a server.
Some of the limitations associated with this set-up.
Why we chose to port marimo to Pyodide, and what was required to make it work.
The benefits associated with porting marimo to Pyodide.
Shout out to Iodide — reading the Mozilla Hacks blog post, we share many of the opinions held by the Iodide authors
Conclusion: why we believe WebAssembly and Pyodide are crucial in expanding the accessibility and portability of scientific computing, machine learning, and data science, and why we’re very excited for the future of these technologies
Hello Pyodide maintainers!
I’m Akshay Agrawal. Myles Scolnick and I develop marimo, an open-source reactive notebook for Python that’s reproducible, stored as a Python file, executable as a script, and deployable as an interactive web app. I’m following up from a GitHub discussion in the Pyodide repo about authoring a guest blog post.
One of our goals with marimo is to make computing more accessible and portable. To that end, Pyodide has been invaluable: we recently ported our runtime to be compatible with Pyodide, making it possible to run marimo notebooks entirely in the browser. We’ve made this Pyodide-powered marimo notebook accessible via a playground at https://marimo.app. Our documentation outlines ways that our WASM notebook can be used.
Running entirely in the browser brings several benefits to our users. Thanks to Pyodide, our users can get started with marimo without even having Python on their machine. They can also easily share live, interactive versions of their notebooks/apps and embed notebooks in documentation and blog posts. Pyodide-powered notebooks are also in some cases snappier than notebooks powered by remote kernels, since they eliminate overheads associated with networking. Pyodide also helps with portability — one of our users even managed to get marimo working on Puter, with little effort.
We would love to write a blog post that elaborates on these benefits and discusses the changes that were required to make marimo compatible with Pyodide. Here is an outline: