Skip to main content

3 posts tagged with "webassembly"

View All Tags

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

· 9 min read
Scientific Software Developer at QuantStack

A JIT compiler—and its ecosystem—running entirely in the Web browser

Scientists, students, and engineers use Jupyter notebooks to explore ideas interactively: write a small piece of code, execute it, inspect the result, and continue from there. Traditionally, every such notebook requires a Python process running on a server or on the user's machine.

JupyterLite changes this model. Its kernels run locally in the Web browser through WebAssembly, so a static website can provide a complete computational environment without allocating a server to every user. This makes notebooks easier and cheaper to share at scale, whether they are used for documentation, education, or interactive demonstrations.

There has, however, been an important piece missing from the browser-based scientific Python ecosystem: Numba.

Today, we are excited to share the first working version of the Numba JIT compiler running entirely in the browser with JupyterLite and emscripten-forge!

Numba benchmark in JupyterLite

Numba in action in JupyterLite, showing a 249× speedup over standard Python.

In this example, Numba delivers a roughly 250× speedup in WebAssembly, compared with about 90× natively. The larger relative gain makes Numba especially compelling in the browser, where bypassing Python interpreter overhead can have an even greater impact.

This means that a Python function can be transformed into Numba's Intermediate Representation (IR), typed, lowered to LLVM IR, compiled into WebAssembly, dynamically linked, and executed—all without a remote Python server.

Try it here: Numba and its ecosystem in JupyterLite.

What Is Browser-Native Scientific Computing?

· 20 min read

Black Hole Fig above: Computation of a blackhole approach trajectory using EinsteinPy. This trajectory was computed fully in-browser relying on community Python code, demonstrating the power of WebAssembly for easily exploring advanced concepts or calculations.

TL;DR: Browser-native scientific computing means a full compute environment — Python, R, C++, or any language that compiles to WebAssembly — running inside your browser. It arrives as simple static files: no backend, no installation, no setup required. An entire environment can be handed over as a URL, and is highly accessible, secure, and reproducible because WebAssembly, a standardised web technology, was made for safe sharing across devices and time. Since compute happens on the user's own machine, serving one user or a hundred thousand costs about the same, opening up new possibilities — giving nationwide access to code for students, public data portals with embedded compute environments, runnable documentation, and executable blog posts or papers. The technology is used in production and available today.

Introducing Notebook.link

· 6 min read
QuantStack
Scientific Software Computing

Reimagining how you share, collaborate, and run Jupyter notebooks - all in your browser.

Rocket

Sharing a Jupyter notebook has always been harder than it should be. You clone a repo, fight the environment, install conflicting dependencies, and hope the author didn't forget to pin their package versions. Half the time, you give up before the kernel even starts. Notebook.link fixes this. Open a link. Your notebook runs. That's it.

Built on JupyterLite, Notebook.link is more than just a notebook viewer: it’s a fully interactive, scalable, and language-agnostic computing environment that operates entirely in your browser. Whether you’re a data scientist, educator, researcher, or developer, Notebook.link eliminates the need for local installations or complex setups, allowing you to create, share, and execute notebooks effortlessly.