W
Wasmee
Features Benchmarks How it Works Blog GitHub
|
Get Started
Wasmee v0.1.0 is officially released

Run WebAssembly with Extreme Speed & Durable State

Wasmee is a sandboxed WebAssembly execution engine written in Rust on top of Wasmtime. Engineered for high-density, crash-resilient executions, providing microsecond startup times and native state checkpointing.

Install Wasmee Explore Features
$ curl -sSf https://wasmee.com/install.sh | sh
$ wasmee run guest_process.wasm --env vars.json
[info] Compiling guest_process.wasm (Wasmtime JIT)...
[info] Instance initialized. Gas configured: 10,000,000. Memory limit: 32MB.
[log] Evaluating payload: { "order_total": 4500, "customer": "ACME Corp" }
[log] Host variable exchanged. Calling set_variable("tax_rate", 0.15)
[success] Task executed in 39.6 microseconds. Memory footprint: 4.2 MB.
$ wasmee snapshot create guest_process.wasm --out snapshot.bin
[info] Running process step 1 of 5...
[warn] Snapshot triggered at guest execution checkpoint (Step 2).
[info] Serializing VM instance memory layout (14 pages)...
[success] Snapshot binary written to database (280 KB). VM state saved.
$ wasmee snapshot resume snapshot.bin
[success] VM state restored. Resuming step 3 with full memory context.
$ wasmee bench --concurrent 50 --duration 10s
[info] Warmup completed. Starting load benchmark...
Running 50 virtual users.
--------------------------------------------------
Warm Resume Latency (p50): 39.6 µs
Warm Resume Latency (p95): 259.49 ms
Throughput (In-Memory VM): 25,274 RPS
Throughput (HTTP API): 382.25 RPS
SLA Checks Pass Rate: 100%
< 40 µs
Warm Resume Latency
Fastest state recovery among modern WebAssembly runner platforms.
32 MB
Memory Sandboxing
Zero-trust memory boundary controls preventing CPU leaks and heap-overruns.
25k+
In-Memory RPS
Blazing throughput executing sandboxed WebAssembly tasks on a single node.
100%
Pure Sandboxed Safety
Completely blocks untrusted network access, filesystem writes, and process fork APIs.

Want to run these benchmarks yourself?

View Load Testing Guide & Source

Designed for Durable Micro-Tasks

Why teams choose Wasmee for executing business logic and untrusted user-submitted code.

Durable Snapshots

Serialize full memory states to PostgreSQL or AWS S3. Restore execution seamlessly even if the host machine crashes mid-step.

Rust-Native JIT Performance

Compiles guest WebAssembly modules directly into machine code via Wasmtime Cranelift JIT. No virtual containers, no JVM overhead.

Zero-Trust Security

Strict execution constraints. Blocks unauthorized host network calls, directory listings, command lines, and OS threads.

Microsecond Cold Starts

Keeps a hot-cache pool of compiled modules ready to execute instantly. Reduces guest initialization overhead to near-zero.

Gas-Metered Execution

Prevent resource exhaustion and infinite loops by defining strict execution limits (gas budgets) for untrusted guest tasks.

Seamless Variable Exchange

Bidirectional serialization mappings. Read/write execution context variables using simple import functions directly from guest Wasm.

Write Once. Run and Persist Anywhere.

How guest scripts leverage Wasmee host bindings for state-resilient executions.

guest_task.rs
use wasmee_sdk::guest::{get_variable, set_variable, LogLevel};

#[no_mangle]
pub extern "C" fn execute() -> i32 {
    wasmee_sdk::log(LogLevel::Info, "Starting order calculation...");

    // Retrieve environment variable from host
    let total: f64 = get_variable("order_total").unwrap_or(0.0);
    
    if total <= 0.0 {
        wasmee_sdk::log(LogLevel::Error, "Invalid order total");
        return -1;
    }

    let tax = total * 0.15;
    
    // Save variable back to execution context
    set_variable("calculated_tax", tax);
    
    wasmee_sdk::log(LogLevel::Info, "Tax calculated successfully.");
    0
}
// JavaScript Script Task executed in Wasmee's QuickJS runtime sandbox
function execute(vars) {
    console.log("Starting order calculation...");
    
    const total = vars.order_total || 0;
    if (total <= 0) {
        throw new Error("Invalid order total");
    }
    
    const tax = total * 0.15;
    
    // Returns object back to host variables state
    return {
        calculated_tax: tax
      };
}
package main

import (
	"github.com/wasmee/sdk/go/guest"
)

//export execute
func execute() int32 {
	guest.LogInfo("Starting order calculation...")
	
	// Read variable from host environment
	total, err := guest.GetVariableFloat("order_total")
	if err != nil || total <= 0 {
		guest.LogError("Invalid order total")
		return -1
	}
	
	tax := total * 0.15
	
	// Save variable back to context variables
	guest.SetVariableFloat("calculated_tax", tax)
	return 0
}

func main() {}
⚡ GitOps Webhook (Zero Pipeline Hot-Reload)

Register this URL as a Webhook in GitHub or GitLab to automatically hot-reload the JIT cache on push:

http://127.0.0.1:8081/git-webhook
Execution Console
Stateless Mode
[14:24:00] INFO Loading environment variable 'order_total'...
[14:24:00] VALU order_total = 4500.00
[14:24:00] INFO Running calculations...
[14:24:00] SNAP Auto-checkpoint: serializing execution memory state...
[14:24:00] INFO Calculated tax: 675.00
[14:24:00] INFO Saving variable 'calculated_tax'...
[14:24:00] DONE Exit code: 0 (Execution Success, Duration: 39.6 µs)

Build High-Density Durable Executions

Run untrusted user logic, scale microservices, or orchestrate complex execution pipelines at the speed of native code.

View on GitHub View SDK Guides

Wasmee Blog

Insights, technical deep-dives, and updates from the Wasmee core team.

Back to Blog
Performance & Design

•

W
Wasmee
© 2026 Wasmee Authors. Part of the NativeBPM platform. Released under the Apache 2.0 License.