Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

1,285 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Kiln

WebAssembly runtime for safety-critical systems

CI codecov Rust WebAssembly no_std WebAssembly spec suite Kani-checked (selected) License: MIT

Meld · Loom · Synth · Kiln · Sigil

Meld fuses. Loom weaves. Synth transpiles. Kiln fires. Sigil seals.

A Rust implementation of a WebAssembly runtime with full Component Model and WASI 0.2 support. Designed for safety-critical embedded systems with bounded allocations, deterministic execution, and a modular no_std architecture for automotive, medical, and aerospace environments.

Kiln bridges the gap between WebAssembly's portability and the strict requirements of safety-critical deployment. It runs on everything from cloud servers to bare-metal Cortex-M targets.

Quick Start

# Clone and build
git clone https://github.com/pulseengine/kiln
cd kiln
cargo build --bin kilnd --features "std,kiln-execution"
# Run a WebAssembly component
./target/debug/kilnd your_component.wasm --component

Architecture

  • kilnd/ — Runtime daemon (main executable)
  • kiln-runtime/ — Execution engine
  • kiln-component/ — Component Model support
  • kiln-decoder/ — Binary format parsing
  • kiln-foundation/ — Core types and bounded collections
  • cargo-kiln/ — Build tooling

Usage

# Basic component execution
kilnd component.wasm --component
# With WASI support
kilnd component.wasm --component --wasi
# Set resource limits
kilnd component.wasm --component --fuel 100000 --memory 1048576

Building

# Install build tool (optional but recommended)
cargo install --path cargo-kiln
# Build runtime
cargo build --bin kilnd --features "std,kiln-execution"
# Run tests
cargo test --workspace

Current Status

Early Development — Basic WebAssembly component execution is working:

./target/debug/kilnd hello_rust.wasm --component
# Output: Hello wasm component world from Rust!

Working

  • WebAssembly Component Model parsing and instantiation
  • WASI 0.2 stdout/stderr output (wasi:cli/stdout, wasi:io/streams)
  • Core WebAssembly module execution
  • Basic memory management with bounds checking
  • no_std compatible foundation

In Progress

  • Additional WASI 0.2 interfaces (filesystem, environment)
  • Cross-component function calls
  • Full Component Model linking

Verification & correctness

kiln's correctness rests on conformance testing and bounded model checking — not (yet) a mechanized proof of its WebAssembly execution semantics. We state that plainly.

  • WebAssembly spec suite: the current pass rate is re-derived by CI on every run and shown in the badge above (files passed / total · executed-assertion rate), so the number here can't drift from the evidence. We report the file ratio as the headline on purpose: a file that fails to parse (e.g. the custom-descriptors proposal) contributes zero assertions to both sides of the assertion rate, so only the file count reflects it — the assertion rate alone would flatter exactly where it shouldn't. Known gaps: validation strictness on some GC-proposal cases (a few should-be-invalid modules are currently accepted) and the custom-descriptors parse failure. Reproduce locally with cargo-kiln testsuite --run-wast.
  • Unit tests: 300+ across the interpreter core.
  • Kani (CBMC bounded model checking): proof harnesses on selected safety-relevant components (foundation collections, arithmetic overflow, LEB128, host dispatch, wasi-nn bounds, platform sync) — bounded proofs of those components, not of the interpreter core (kiln-runtime / kiln-instructions / kiln-decoder carry no formal proofs today).
  • Not claimed: formal proof of the interpreter's execution semantics. Mechanized semantics (WasmCert-style) is a research direction, not a shipped guarantee.

Other PulseEngine tools use additional techniques (Rocq, Z3/translation-validation, Verus) on their own artifacts; that does not transfer a proof onto kiln's interpreter. These claims are gated by claim-check so they cannot drift from the evidence.

License

MIT License — see LICENSE.


Part of PulseEngine — a WebAssembly toolchain for safety-critical systems, grounded in spec-suite conformance and Kani model-checking of critical components

About

Kiln — WebAssembly runtime for safety-critical systems. Full Component Model and WASI 0.2 support. Part of the PulseEngine toolchain.

Topics

Resources

Contributing

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /