WASM limitations

Browser notebooks use Pyodide, so Python runs inside WebAssembly. These limitations are expected for browser-local compute.

Package support

Pure Python

Pure Python packages from PyPI often work with micropip.install().

Pyodide packages

Common scientific packages available in Pyodide can be imported directly or installed from the Pyodide package set.

Native extensions

Packages requiring C, Rust, Fortran, system libraries, sockets, or subprocesses usually do not work unless Pyodide ships a compatible build.

Browser limits

Memory, CPU, file access, and network access are constrained by the browser.

Install package example

import micropip
await micropip.install("plotly")
import plotly.express as px

Check Pyodide package support at pyodide.org.

Operational limits

  • No normal multiprocessing or background server processes.
  • No GPU/CUDA access from the browser runtime.
  • External HTTP fetches depend on remote CORS headers.
  • Browser memory pressure can terminate heavy notebooks.
  • Files live in a browser-backed virtual filesystem until saved through ozeye.

Detect browser runtime

import sys

if "pyodide" in sys.modules:
    # Browser/WebAssembly runtime
    ...