Nice. It might be worth copying some of the introductory text from the Tauri package explaining what this does. Otherwise a person to lands on the readme gets a lot of technical detail about how it is built without any idea what it actually does.
Pyodide maintainer here, we would have certainly seen more reports if JsDelivr was blocked in UK. That URL works fine for me from France, and when using a UK VPN end point. Maybe something specific about your network (corporate proxy etc)?
Are you getting an HTTP status other than 200 or the domain name not being resolved?
It's done currently in Pyodide: Python with DOM integration running with WASM. Minimal application with stdlib is around 5.5MB after compression now. Not small but still manageable depending on the use case.
Still I agree with your other comments, and in particular not being able to share caches in the browser is very unfortunate (but understandable).
For people wanting to do more functional programming in Python, have a look at toolz (https://toolz.readthedocs.io/en/latest/). It goes a bit further in that direction.
Concrete Python applications wouldn't be 100x faster if re-coded in some low level language.
In most places where performance matter Python packages would be using either C extension, Cython or numba to get near native performance. Pyodide is able to build those packages (except for numba). So overall it's currently 3 to 5 slower than native Python (which uses C extensions). See detailed benchmarks in https://hacks.mozilla.org/2021/04/pyodide-spin-out-and-0-17-...
If you just open an HTML file in your browser via its local path (e.g. /home/user/...) the browser will prevent you from loading other files by JS due to CORS. So we need a web-server to set the appropriate CORS headers. Any web-server would do.
Well you need to be able to serve static files. So if you are building locally you need to start a webserver, otherwise you can use the JsDelivr CDN.
Memory leaks can happen if you translate objects between Python and JS. So of it is unavoidable because it's difficult to know when to destroy Python objects from JS vice versa, but lots of work on it has been done in the 0.17 release with more to come in 0.18
Yes, installing pure Python packages that have wheels from PyPi works. Assuming they don't use functionality that's not supported by the WebAssembly VM such as multiprocessing, threading (for now), and sockets.
Because a large part the Python ecosystem uses packages (and stdlib modules) with C extensions and you can't easily transpile those. The end goal of Pyodide is to be able run existing projects mostly without modification in the browser, and that is not possible if one doesn't support Python C extensions.