I'm using Pyodide to run my python library in the browser (and calling it from TypeScript), I'm using enthought's traits library too and it works amazingly well (and quickly)
For those like who wanted to know what Pyodide is… quoting from the repo:
Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPi is supported. Many packages with C extensions have also been ported for use with Pyodide. These include many general-purpose packages such as regex, PyYAML, lxml and scientific Python packages including NumPy, pandas, SciPy, Matplotlib, and scikit-learn.
Am I the only one having problems with the interactive example on numpy.org on Chrome? The "Try NumPy" doesn't work in Chrome (v99 on Linux), although Firefox runs fine.
I love that Pyodide is bridging the gap between Python and the browser, and really hope they succeed.
This (pyodide) is limited to pure-python and a small, curated list of packages. So many packages using cython packages are unfortunately not usable at the moment.