Live data from Hacker News

Extending web applications with WebAssembly and Python

wasmlabs.dev

11–20 of 27 posts

Re: Extending web applications with WebAssembly and Python

#11
post #4

Is there a project to package up static python modules to run in-browser using one of their web assembly runtimes?

I think Pyodide is what you want. https://pyodide.org/en/stable/

Sounds great, I will put it in my new operating system running in the browser https://extendedmachine.com.

Re: Extending web applications with WebAssembly and Python

#12
post #9
post #3

One of the aspects I find tremendously exciting about Wasm is not just the portability, security, performance, etc. but the fact that you can do this with your language of choice. Lowering the barrier to adoption without hindering some of the advanced use cases tends to work well to get developers onboard ...

It's not quite as open as the language of your choice. There are a handful of popular languages available, Rust, C, C++ and a number of fringe languages like Zig, AssemblyScript, etc. You can run something like Python but it's a bit misleading because you're compiling the entire runtime to WebAssembly similar to how CheerpJ runs Java or Blazor runs .NET

How is it misleading? It is the whole point that you can compile CPython or PHP interpreters to target this as another target platform like x86 or ARM

Re: Extending web applications with WebAssembly and Python

#13
post #9

Earlier quoted context omitted.

It's not quite as open as the language of your choice. There are a handful of popular languages available, Rust, C, C++ and a number of fringe languages like Zig, AssemblyScript, etc. You can run something like Python but it's a bit misleading because you're compiling the entire runtime to WebAssembly similar to how CheerpJ runs Java or Blazor runs .NET

How is it misleading? It is the whole point that you can compile CPython or PHP interpreters to target this as another target platform like x86 or ARM

Python performance on wasm is going to be abysmal because you're essentially running a VM inside a VM. Other languages like rust can compile directly to wasm. Until Python can do the same it will be a second or third class citizen in wasm.

Put another way, you could make one of those tier charts for WASM tooling, and if rust is in S tier, python is like C or D tier.

Re: Extending web applications with WebAssembly and Python

#14
This is exactly what I needed. Context is I am trying to incorporate different scripting language in our rust app so I tried RustPython and QuickJS. Its been a pain so far and it adds a lot of time to our compilation so I love the idea of being able to load a wasm python but I was missing this script to host communication part.

Re: Extending web applications with WebAssembly and Python

#16
post #13

Earlier quoted context omitted.

How is it misleading? It is the whole point that you can compile CPython or PHP interpreters to target this as another target platform like x86 or ARM

Python performance on wasm is going to be abysmal because you're essentially running a VM inside a VM. Other languages like rust can compile directly to wasm. Until Python can do the same it will be a second or third class citizen in wasm. Put another way, you could make one of those tier charts for WASM tooling, and if rust is in S tier, python is like C or D tier.

Rust is not an interpreted language like Python. Your comment would make sense if Python code could be compiled into x86 or ARM assembly in the first place.

Re: Extending web applications with WebAssembly and Python

#17
post #11

Earlier quoted context omitted.

I think Pyodide is what you want. https://pyodide.org/en/stable/

Sounds great, I will put it in my new operating system running in the browser https://extendedmachine.com .

Not sure if you’re just trying to advertise your project, but I wouldn’t use Pyodide in that case. I’d personally rather use the tool linked in the OP article for something like an OS in the browser

Re: Extending web applications with WebAssembly and Python

#20
post #16
post #13

Earlier quoted context omitted.

Python performance on wasm is going to be abysmal because you're essentially running a VM inside a VM. Other languages like rust can compile directly to wasm. Until Python can do the same it will be a second or third class citizen in wasm. Put another way, you could make one of those tier charts for WASM tooling, and if rust is in S tier, python is like C or D tier.

Rust is not an interpreted language like Python. Your comment would make sense if Python code could be compiled into x86 or ARM assembly in the first place.

> Your comment would make sense if Python code could be compiled into x86 or ARM assembly in the first place.

It can actually be compiled (or transpiled) into C code [1] with few limitations, so I can't see why not. It still requires libpython but it should be better than porting the whole interpreter to webassembly.

[1] https://github.com/Nuitka/Nuitka

Post reply on HN