PyScript Updates: Bytecode Alliance, Pyodide, and MicroPython
Nov 09, 2022By Ted Patrick
Earlier this year we unveiled PyScript to enable users to create Python applications in the browser. In order for PyScript to succeed, we at Anaconda must make strategic investments in both the project itself and its core technology dependencies, such as WebAssembly (Wasm) and the fantastic Pyodide open-source project (PyScript’s primary runtime). To that end, PyScript has been improving its technical foundations over the past few months, and today we have three special announcements to share:
We are pleased to announce that Anaconda has joined the Bytecode Alliance as a full voting member to improve the standards of Wasm and WASI. Similarly to the way Wasm plays a crucial role in PyScript, we see WASI playing a critical role in Python ecosystem runtimes and modules. We look forward to advancing these standards in partnership with the Alliance. Data science requires workloads to run everywhere—in a local Python environment, the browser, and the cloud—and this portability is the future of computing.
We are also making critical investments in the Pyodide open-source project by contributing upstream and supporting ongoing development. Pyodide’s success is PyScript’s success; it is that simple. Although many projects bring Python to the browser, Pyodide has done an excellent job bridging the development gaps in cross-language proxies, packaging, and module support. We see Pyodide as PyScript’s default runtime for the foreseeable future. We want to support it as a critical dependency and fully recognize the value it adds to PyScript.
We are showcasing a technical preview of a new runtime for PyScript based on MicroPython. MicroPython is excellent at running in constrained environments without an operating system and with limited resources. When you apply MicroPython to Wasm in its default configuration, something new and exciting emerges: With a total size of 303KB, this new runtime loads instantly and starts executing MicroPython logic in less than 100ms. While very early in the development process, this runtime will be excellent for creative, educational, and visualization use cases. The MicroPython runtime enables PyScript in many development scenarios where the current runtime loading performance is problematic. Since PyScript supports multiple runtimes via configuration, developers can choose the runtime that best fits the particular problem.
As we continue to invest in the foundations of PyScript, we at Anaconda must thank all of the involved developers for their hard work. We are immensely grateful to all of the maintainers of PyScript, Pyodide, Python, and MicroPython for their tireless efforts toward building a better technology future. We look forward to continuing to support open source and the standards that empower the community. To stay abreast of our progress, follow @pyscript_dev on Twitter.