Show HN: Sandboxing untrusted code using WebAssembly

Hacker News (score: 15)
Found: February 03, 2026
ID: 3214

Description

DevOps
Show HN: Sandboxing untrusted code using WebAssembly Hi everyone,

I built a runtime to isolate untrusted code using wasm sandboxes.

Basically, it protects your host system from problems that untrusted code can cause. We’ve had a great discussion about sandboxing in Python lately that elaborates a bit more on the problem [1]. In TypeScript, wasm integration is even more natural thanks to the close proximity between both ecosystems.

The core is built in Rust. On top of that, I use WASI 0.2 via wasmtime and the component model, along with custom SDKs that keep things as idiomatic as possible.

For example, in Python we have a simple decorator:

  from capsule import task

  @task(
      name="analyze_data", 
      compute="MEDIUM",
      ram="512mb",
      allowed_files=["./authorized-folder/"],
      timeout="30s", 
      max_retries=1
  )
  def analyze_data(dataset: list) -> dict:
      """Process data in an isolated, resource-controlled environment."""
      # Your code runs safely in a Wasm sandbox
      return {"processed": len(dataset), "status": "complete"}
And in TypeScript we have a wrapper:

  import { task } from "@capsule-run/sdk"

  export const analyze = task({
      name: "analyzeData", 
      compute: "MEDIUM", 
      ram: "512mb",
      allowedFiles: ["./authorized-folder/"],
      timeout: 30000, 
      maxRetries: 1
  }, (dataset: number[]) => {
      return {processed: dataset.length, status: "complete"}
  });
You can set CPU (with compute), memory, filesystem access, and retries to keep precise control over your tasks.

It's still quite early, but I'd love feedback. I’ll be around to answer questions.

GitHub: https://github.com/mavdol/capsule

[1] https://news.ycombinator.com/item?id=46500510

More from Hacker

Serverless backend hosting without idle costs – open-source

Serverless backend hosting without idle costs – open-source

Show HN: AWS-doctor – A terminal-based AWS health check and cost optimizer in Go

Show HN: AWS-doctor – A terminal-based AWS health check and cost optimizer in Go

Log level 'error' should mean that something needs to be fixed

Log level 'error' should mean that something needs to be fixed

Chafa: Terminal Graphics for the 21st Century

Chafa: Terminal Graphics for the 21st Century

No other tools from this source yet.