Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guest blog post: marimo, a Pyodide-powered reactive notebook for Python #41

Open
akshayka opened this issue Mar 12, 2024 · 2 comments
Open

Comments

@akshayka
Copy link
Contributor

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:

  • 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
@hoodmane
Copy link
Member

Sounds good to me. Looking forward to it @akshayka!

@ryanking13
Copy link
Member

I'm looking forward to it, too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants