Documentation

JupyterLite Runtime

What works and what doesn't in InkRider's built-in browser runtime, and how to fix common issues.

JupyterLite is InkRider's default runtime. It runs a full in-browser Jupyter environment — no local Python install required. This page covers what JupyterLite can and cannot do inside InkRider. For choosing between runtimes, see Runtimes and Kernels.


What JupyterLite Is

When you run a Python cell with JupyterLite selected, your code executes in a WebAssembly Python environment (Pyodide) inside the browser. InkRider communicates with it using the standard Jupyter protocol, so the cell-run experience feels like desktop Jupyter.

JupyterLite is also available for R and JavaScript kernels in the browser.


What Works Well

  • Standard library Python and many pure-Python packages
  • Document-centric workflows that run entirely in the add-in
  • No server setup — ideal for getting started and for users who cannot install Python locally
  • Runtime package installation via micropip for supported pure-Python packages
  • Multiple kernel languages (Python, R, JavaScript) without external infrastructure

Limitations

Be aware of these constraints before relying on JupyterLite for production workflows:

Limitation Detail
No C extensions Packages that depend on compiled binary wheels (many scientific libraries) generally will not install or run
No machine filesystem Code cannot read arbitrary files from your hard drive; use the Virtual Filesystem instead
Browser network policy HTTP requests from code are subject to CORS and browser security rules
Memory ceiling Large datasets or long-running computations can exhaust browser memory — see Resource Watchdog
Session-scoped packages Packages installed via micropip last for the current session only

If your workflow hits these limits, connect an external Jupyter Server (Professional plan).


Installing Packages at Runtime

For pure-Python packages available on PyPI, use micropip in a code cell:

import micropip
await micropip.install("httpx")

Packages installed this way are available for the remainder of the session. To install automatically when a notebook starts, add the package to a requirements.txt file in the notebook's VFS folder.

For persistent, full-environment package management, use a Jupyter Server runtime and manage packages with pip or conda on that machine.


Common Errors and Fixes

ModuleNotFoundError

The package is not available in the current session.

  1. Try installing with micropip (see above).
  2. If the package requires C extensions, switch to Jupyter Server.
  3. Confirm the package name is spelled correctly.

Kernel busy or session stuck

  1. Open the Session Manager and interrupt or restart the session.
  2. If the session will not respond, restart the kernel from Application Settings or close and reopen the add-in.
  3. See Troubleshooting — Session stuck.

Out of memory or tab becomes unresponsive

  1. Restart the kernel to free memory.
  2. Reduce data size (sample large DataFrames, avoid loading huge files into memory).
  3. See Resource Watchdog for monitoring and prevention.

Slow first run

The first code execution after opening InkRider downloads runtime components. This is normal and can take 30–60 seconds depending on your connection. Subsequent runs are much faster.

Code works in desktop Jupyter but not here

Check whether the code depends on:

  • C-extension packages → use Jupyter Server
  • Local file paths → use VFS paths (/drive/...) or Jupyter Server
  • Network endpoints blocked by CORS → use Jupyter Server or a proxy

When to Use Jupyter Server Instead

Switch to an external Jupyter Server when you need:

  • numpy, pandas, or other packages with binary dependencies
  • Direct access to databases, VPNs, or internal APIs
  • Large datasets that exceed browser memory
  • Reproducible conda or Docker environments

See Using an External Jupyter Server for setup instructions.


See Also