Wasm Python synchronous IO working group?

There is a lot of interest among Pyodide users in consuming asynchronous browser APIs from synchronous C / Python APIs. This is technically possible but requires some work to support. I think it would be good to get together some people from the community and try to organize work around this.

Alex Mojaki has some good work on this that I don’t fully understand:

I have my own synchronous RPC proof of concept:

As an example of one of the many cool features this work would enable, here is an example that wraps the chrome native filesystem API in a file system implementation.

It makes it possible to mount a directory from the user’s native OS into the Emscripten filesystem and then directly read and write to the file system from Pyodide.

7 Likes

BTW, on a related topic, an early implementation of Wasm stack switching was added to Emscripten emscripten#16779 which wouldn’t have the performance cost of Asyncify apparently. Also related to github.com/joemarshall/unthrow and pyodide#2664