Julia and WASM

I thought this article on WASM and Julia was interesting and a good idea - maybe even inevitable. This is a short excerpt:

Julia in WebAssembly by Raymond Minor Huffman
B.S. in Computer Science and Engineering
Massachusetts Institute of Technology (2022)

"WASM support for Julia would enable applications written in Julia to run natively in a web browser without the need for users to download and install a local copy of Julia. As an example, consider interactive notebooks like Jupyter and Pluto.jl. To view and interact with these notebooks, users must install a local copy of Julia, install all the notebook’s required packages, and have some ability to debug any issues related to this installation process. With WASM support, users could open Julia notebook directly in their web browser without the need to install any software.This would also expand support to platforms like iOS, Android, and ChromeOS that do not have native Julia support.

In addition to interactive notebooks, any web application that would currently offload complex computation to a backend server could instead implement that logic in Julia and execute it locally on the user’s device. Applications such as image processing, generating charts and figures, and solving differential equations are just a few examples.

Full Article:

3 Likes

https://tshort.github.io/WebAssemblyCompiler.jl/stable/

2 Likes

You’re just giving your local path…
For supplement:
https://dspace.mit.edu/handle/1721.1/150151

2 Likes

Thanks - I corrected my mistake and provided proper link.

Researching this further, it seems that there are barriers - Julia’s JIT compiler is one of its great strengths, but it prevents programs from being compiled into small and easily distributed binaries. Also, Julia relies on an asynchronous task runtime, and WebAssembly currently lacks native support for managing task stacks in the WASM heap. This would require Julia to explicitly manage task stacks and perform compiler transformations, which would impact the performance of Julia on the WASM platform.

3 Likes