Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

Boomslang runs CPython 3.14 from a WASI build. The default artifact embeds that runtime in Java through Chicory, so Python runs inside the JVM without JNI, subprocesses, or a system Python install.

Python code executes in a fully sandboxed WebAssembly memory space: it sees only the filesystem you give it, calls only the host functions you register, and a misbehaving script cannot take down the JVM.

What’s in the box

The default Maven artifact ships with:

  • CPython 3.14 built for wasm32-wasip1
  • the Python stdlib plus NumPy, Pandas, Matplotlib, Pillow, Pydantic, ijson, and Jinja2
  • python/bin/boomslang.wasm, the runtime module
  • generated Chicory AOT classes, so the WASM runs as compiled JVM bytecode instead of being interpreted
  • copy-on-write memory snapshots: the interpreter is pre-initialized at build time (Wizer), so creating a PythonInstance is a memory copy measured in milliseconds, not a full CPython startup
  • boomslang_host, a small Python-side bridge for calling host functions

Supported hosts

A host is the outside process embedding boomslang.wasm: it supplies the WASM runtime and implements imported host functions. (See the glossary — “host” deliberately does not mean the Rust code inside the module.)

Host languageStatusRuntimeHost adapter support
JavaPrimary hostChicoryStock runtime API, HostBridge, generated Java adapters
PythonSupported host packageWasmtime (wasmtime-py)boomslang-py wheel with the Sandbox API and host functions
RustSupported example hostWasmtimeGenerated Rust adapters; see examples/rust-host/
Other languagesABI targetAny WASM runtime with compatible importsImplement the ABI JSON contract directly

Where to go next