Numba Runs in the Browser: 250x Speedup in JupyterLite

Numba in the Browser: Unlocking a New Scientific Python Stack in JupyterLite

Numba Runs in the Browser: 250x Speedup in JupyterLite

JupyterLite brings a full scientific Python stack to the browser via WebAssembly, but Numba was missing. Now, QuantStack has made it work: Numba's JIT compiler pipeline—from Python bytecode to LLVM IR to WebAssembly—runs entirely client-side, delivering a 249x speedup over standard Python. This unlocks PyTensor, PyMC, and other Numba-dependent libraries in JupyterLite, with packages available via emscripten-forge.

The larger relative gain makes Numba especially compelling in the browser, where bypassing Python interpreter overhead can have an even greater impact.
  1. momojo

    This is awesome! For those here not familiar with Numba, it helps bridge that performance vs ergonomics tradeoff that's always existed when you reach for python over a lower level but faster lang like C or C++.

    Sure you could write Cython but then you have to have a build step and make wheels for every platform you and python version. Sure numpy has gotten faster over the years but you're still hampered by the GIL.

    Numba is a little magic because you get to write stuff that feels like numpy, but get literal bytecode perf.

    BUT there's a cost to this, which u learned the hard way when I imported a color map extension for matplotlib recently.

    I thought i was going to be importing a couple megabytes at most. But Numba+llvmlite alone is almost 100MB!

    This might be a drop in the bucket in some applications but for a color map library that has only two hot paths that need to be JITed, it's excessive.

    Overall though, love this achievement, and i love what's being done for in-browser (aka local-first) scientific computing!

  2. rossant

    Congrats for a serious engineering achievement!

    I had experimented with a similar idea in an infinitely more primitive way more than ten years ago (https://cyrille.rossant.net/numpy-browser-llvm/). I'm glad to see so much progress since then.

  3. lmc

    Are there some benchmarks of the browser vs non-browser version?

    I.e., what are the absolute numbers behind

    > Numba delivers a roughly 250× speedup in WebAssembly, compared with about 90× natively.

More from this day

2026-08-16