| ▲ | Pyodide: a Python distribution based on WebAssembly(github.com) | ||||||||||||||||||||||||||||
| 69 points by tosh 4 days ago | 23 comments | |||||||||||||||||||||||||||||
| ▲ | simonw 4 hours ago | parent | next [-] | ||||||||||||||||||||||||||||
Pyodide is one of the hidden gems of the Python ecosystem. It's SO good at what it does, and it's nearly 8 years old now so it's pretty mature. I love using Pyodide to build web UIs for trying out new Python libraries. Here's one I built a few weeks ago to exercise my pure-Python SQLite AST parser, for example: https://tools.simonwillison.net/sqlite-ast It's also pretty easy[1] to get C or Rust libraries that have Python bindings compiled to a WebAssembly wheel that Pyodide can then load. Here's a bit of a nutty example - the new Monty Python-like sandbox library (written in Rust) compiled to WASM and then loaded in Pyodide in the browser: https://simonw.github.io/research/monty-wasm-pyodide/pyodide... [1] OK, Claude Code knows how to do it. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | fzumstein 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Pyodide powers xlwings Lite, a free Excel add-in that you can install from Excel’s add-in store with a single click. It outperforms Microsoft’s official Python in Excel solution in every coceivable way: price, privacy, speed, can install packages, can access the internet, can access local files, doesn’t have a usage quota, can automate Excel and create native UDFs. See https://lite.xlwings.org | |||||||||||||||||||||||||||||
| ▲ | devsda 4 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
There's also xeus-cpp which is cpp based on wasm. Xeus-cpp and pyodide are the backends for Jupyterlite [1] kernels in browser. It's actually a very good way to teach coding in python/c++(11, 17 or even 23), explore language features or your own library within browser and allow students to execute code by hosting just some static html pages and some assets without any backend. | |||||||||||||||||||||||||||||
| ▲ | QuadmasterXLII 5 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
It works surprisingly well in terms of writing python for native execution, and then trying to share on the web and having it Just Work TM. Unfortunately, when I want python it's because I want numpy, scipy and friends, and once you bring them on board pyodide load times are long. As an example comparison: a face turning octahedron puzzle in python + pyodide, loads in 10 seconds https://cubes.hgreer.com/fto.html . Meanwhile, a megaminx puzzle in javascript (statically generated by python) loads in 200 ms https://cubes.hgreer.com/ssg/output.html | |||||||||||||||||||||||||||||
| ▲ | ianberdin 4 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Yea, I even built online ide based on Pyodide. Insane peace of software. You can try here: playcode.io/python | |||||||||||||||||||||||||||||
| ▲ | williamstein 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
I tried to make a version of this using Zig once, but ran out of steam: https://cowasm.org/ | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | yjftsjthsd-h 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
That is very cool. Has anyone made a nice beginner's learning environment out of it? Seems like it would solve some of the extra friction that makes it hard to get started. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | jasiek 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
I've used it to put together a browser app to program walkie-talkies: https://codeplug.org | |||||||||||||||||||||||||||||
| ▲ | yawnxyz 6 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
no but it works great in conjunction with observable and d3js for pretty interactives! | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | shevy-java 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
WebAssembly will reach a breakthrough in the same year as GNU Hurd will dominate, together with the Desktop-Linux-of-the-year. | |||||||||||||||||||||||||||||
| ▲ | jacob019 6 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||
Anyone using it with nodejs to make a sandbox for code agents? | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||