惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
V
Vulnerabilities – Threatpost
TaoSecurity Blog
TaoSecurity Blog
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
G
GRAHAM CLULEY
S
Securelist
P
Palo Alto Networks Blog
MongoDB | Blog
MongoDB | Blog
A
Arctic Wolf
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
L
Lohrmann on Cybersecurity
C
Cyber Attacks, Cyber Crime and Cyber Security
F
Fortinet All Blogs
博客园 - 叶小钗
B
Blog RSS Feed
C
Cisco Blogs
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog
K
Kaspersky official blog
D
Docker
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
Cyberwarzone
Cyberwarzone
Security Latest
Security Latest
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Spread Privacy
Spread Privacy
Microsoft Azure Blog
Microsoft Azure Blog
C
Check Point Blog
J
Java Code Geeks
Simon Willison's Weblog
Simon Willison's Weblog
T
Tenable Blog
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
H
Help Net Security
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
Jina AI
Jina AI
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
NISL@THU
NISL@THU
美团技术团队
腾讯CDC

Show HN

GitHub - donghaxkim/react-rewrite: visual editor (figma) for your react apps, edit UI elements live and directly changes source files. no API key, no AI.. Show HN: I think I by accident created something beautiful about LLM [video] Show HN: UN Condemnation Statistics Show HN: Community Ninja – Find customers searching for your product Release v1.3.0 — AI-Powered Migration Explanation & Migrations Folder Support · migradiff/migra Show HN: HumanForScale – See how big things are DropLock Show HN: Ego lite – why our browser agent writes JavaScript not CLI commands Extend AI · sound like you, everywhere SnapState — Your workspace, perfected. Helios. Is plug-in solar worth it? GitHub - riddleling/docOCR: macOS CLI and HTTP OCR tool for converting document images to Markdown. Geostakes — Stake. Guess. Win. Show HN: AI-org – org-mode powered by AI GitHub - PepperDev/totpgate: Lightweight SPA TOTP port knocking daemon GitHub - ppnpm/clinlang: Shorthand writing for doctors. Write shortly and later convert into structured case documentations. cartographer-skill/skills/cartographer/SKILL.md at main · spinchange/cartographer-skill GitHub - schildep/verified-polygon-intersection: Formally verified polygon intersection FreeCal — calendars for your organisation Show HN: Self Publish Studio Owl VIP Email Alerts | Gmail Notifications for Specific Senders 1 Million Pixels Show HN: [Geo-Cast] hear what other people are saying ClawChat GitHub - migradiff/migra: The actively maintained fork of migra — PostgreSQL schema diff and migration script generator. vibebnb · bring back Airbnb's vibe filters GitHub - jmaczan/tiny-vllm: Build your own high performance LLM inference engine in C++ and CUDA - a smaller version of vLLM Reposeek - Find the repo to build on GitHub - hunvreus/heypi: Chat agents for your team, with approvals and sandboxed tools. Slack, Discord, Telegram, webhooks. Show HN: Heirlooms – pass your legacy to family after stop breathing Show HN: I launched a micro-gig marketplace and used it to buy my own GTM plan Show HN: AionOS – self-healing microkernel in Zig (boots on real hardware) GitHub - njbrake/dotpi: My ds4 + pi configuration for success Sverklo - Repo Memory for Coding Agents GAIA Atlas - Local Stellar Map GitHub - joshduffy/claude-handoff-guard: Hook-enforced ownership for AI coding session handoffs Prezlo — The AI Visibility Platform for Professionals GitHub - kenm47/nvEnvy: Fast, keyboard-driven note-taking app for macOS — a modern rebuild of nvALT in Swift/SwiftUI. vibewarz — bot-vs-bot arena Inkfeed TV Explorer — 10,000 Free TV Channels Oort — The prompt stack solo devs ship with GitHub - Bella3202019/promptloop: Claude Code for prompt eval Stefan Le Noach Show HN: A smarter CSS selector generator Phoenix Code - Free Open Source Code Editor | Successor to Brackets Korean OEM/ODM Manufacturer Sourcing Platform | OEMKorea GitHub - OWASP/www-project-agent-memory-guard: OWASP Foundation web repository GitHub - fynyky/elemental: Simple reactive front-end library HolaClaw: run OpenClaw securely in Mac Semiconductor Review GitHub - vaddisrinivas/tab-council: Chrome MV3 extension that turns AI tabs into a structured model council Stillis - The Social Stock Market OpenHive — Agents working together Repolog — SEO, Performance, Security & AI Readiness audits Integuru - Generate fast, reliable APIs for any platform JobTrue — Your home base for the job search. LocalizeASO - ASO Localization for App Store Screenshots and Metadata RFC Reader — search & read IETF RFCs Kotlin Stdlib API Search — Autocomplete & Doc Reference KeptWell — Your family's medical binder, replaced. Cliparr | Self-hosted video clipper for Plex, Jellyfin, and local files. GitHub - glebmish/claude-code-replay: Replay Claude Code session logs to reconstruct lost project files, commit by commit. One Tile GitHub - aavilagallego/TheFoundry: The Foundry is a User Friendly - Enterprise Ready Multi-Agent System (MAS) bootstrapping framework. Monitoring | Firecrawl EverFree — Free, GitHub-backed notes Show HN: Orbital Package System (Ops) Free Furigana Converter: Kanji to Hiragana | EZFurigana How I built Ensemble · Brutal Cut Claude Code Costs ~50% Without Quality Loss | Headroom GitHub - stateflow-dev/adaptive-runtime: Adaptive Runtime Layer for Stateful AI Systems Show HN: Artwork in the style of Mark Rothko GitHub - fayazara/Screendrop: A native macOS menu bar app for taking screenshots, recording the screen, annotating captures, and sharing them when needed. It is built for a fast local workflow: capture something, preview it immediately, mark it up, save it, copy it, or upload it from the same floating preview. deepface.dev GitHub - gitricko/hermes-webtop: An agent that grows with you Sensonym - Forget Flashcards, Learn Languages by Doing Steam 上的 Code: Terraform GitHub - Thinklanceai/agentkeeper: Crash-resistant cognitive continuity for AI agents — checkpoint/restore, cross-model state reconstruction, semantic recall, and compression. Your agent survives crashes, restarts, and model switches. Tap — The browser with no tabs. Blinken · Bring back the blink GitHub - remontsuri/EV-QA-Framework: ML-powered QA framework for EV battery systems — telemetry validation, anomaly detection, SOH prediction, CAN bus (2.0B + J1939) emulation, DBC parser, Prometheus metrics, Grafana dashboard Show HN: Sixbpm – a free thing that slows your breathing down MapZap — 300 Local Business Leads in 60 Seconds Alphaset - Organic data, expert-grown Show HN: OSSentinel.live – AI-powered open source security monitoring Show HN: Claude Code AskUserQuestion which works for subagents/teams/workflows GitHub - SharkUI/SharkBay: SharkBay is a local-first macOS workbench for software projects. It helps you keep a set of local repositories visible, open project-scoped terminals and browser tabs, inspect Git state, and coordinate agent work through local Markdown task records. GitHub - doiito/gliding_horse: Gliding Horse is a multi-agent orchestration framework built in Rust that supports PDCA scheduling and knowledge graph-based agents, with comprehensive Chinese documentation, and is suitable for building enterprise-level AI agent systems. GitHub - 0xJaksun/lithium-core: Storage engine for AI agents to navigate, store, and retrieve structured data. PostgreSQL ltree, built-in versioning, scoped queries. GitHub - GiorgosXou/MLPico: Static-allocation MLP inference in ANSI C using 2-slot circular buffer with fixed stride indexing. An easy to use, minimal MLP alternative to GiorgosXou/NeuralNetworks enhanced with PROGMEM, int-quantization etc. GitHub - skorotkiewicz/acp-p2p: A P2P (POC) of the ACP for decentralized agent communication GitHub - yeet-src/airtop: htop for the airwaves — a live 802.11 (Wi-Fi) RF dashboard in your terminal GitHub - tamarillo-ai/theta-spec: harness agnostic configuration standard Show HN: DRD – Git for distributed consensus failures" GitHub - Heidar-An/Mira: Search for files semantically - no exact filenames required. GitHub - djadmin/fort: macOS CLI: endpoint security audit + SOC 2 readiness reports GitHub - exlee/rik: rik - limited agent edition Pieces | The pre-information market GitHub - jmilinovich/grove: Open-source MCP server over a git-backed Obsidian vault. Single-user, self-host. Six tools, hybrid search, provenance/blame, auto-link discovery.
GitHub - afterburner-sh/afterburner: JS ~> WASM Sandboxed Execution Runtime
vertexclique · 2026-06-14 · via Show HN

Afterburner

A sandboxed JavaScript VM for Rust. Execute untrusted scripts with memory limits, timeouts, capability-gated I/O, and threading, with its own package format, registry, and package manager.

crates.io docs.rs MSRV License Discord


Afterburner is a JavaScript runtime built in Rust, and the way you build on it is by writing packages: small, capability-sealed units of JavaScript or TypeScript that you scaffold, test, build into a single .afb file, and publish to a registry. It ships its own package format, registry, and Cargo-style package manager, so the whole workflow is one toolchain. (You can also embed the engine as a Rust library; see Library usage below.)

Quickstart: build a package

Install the toolchain, then scaffold, run, and publish a package:

curl -fsSL https://afterburner.sh | sh            # install the `burn` toolchain

burn init ./greeter --namespace nyquist --name greeter   # scaffold (add --ts for TypeScript)
cd greeter
burn run                                          # run the package entry (like `cargo run`)
burn test                                         # run tests/ in the sandbox
burn package                                      # build ./nyquist-greeter-0.1.0.afb
burn publish                                      # upload to the registry
burn clean                                        # remove build artifacts

A package is a directory with three parts: a manifest (afb.toml), a capability grant (manifold.json), and your source/. The entry exports one function that takes a JSON input and returns a JSON result:

// source/main.js
module.exports = function (input) {
  return { hello: (input && input.name) || "world" };
};

It is sealed by default: the scaffolded manifold.json grants nothing, so the code cannot touch the network, filesystem, or environment until you open a door. See Packages, registry & package manager for the full authoring reference.

burn: the command-line runtime

Install (prebuilt binaries)

Linux / macOS:

curl -fsSL https://afterburner.sh | sh

Windows (PowerShell):

iwr -useb https://afterburner.sh | iex

Pin a specific version with BURN_VERSION:

# POSIX (put the latest version if you want, below command might be outdated)
BURN_VERSION=v0.1.3 curl -fsSL https://afterburner.sh | sh
# PowerShell (put the latest version if you want, below command might be outdated)
$env:BURN_VERSION = 'v0.1.3'; iwr -useb https://afterburner.sh | iex

Or grab a tarball directly from the Releases page. Archives are named burn-<version>-<target>.tar.gz (or .zip for Windows) and ship with a .sha256 next to them.

Built with --features release-cli (every backend, every L3 shadow, TypeScript loader), so it's a single self-contained binary. No runtime libsqlite3, libssl, or libclang required. Plugin .wasm is include_bytes!-baked into the binary at build time.

Install (build from source)

cargo install afterburner --features bin   # installs the `burn` binary
burn ./script.js                           # run a file
burn -e 'module.exports = () => 42'        # eval inline
echo '{"n":21}' | burn thrust transform.js # UDF mode (stdin → JSON)
burn bench perf.js --iters 10000 --workers 8
burn repl                                  # interactive

Deno-style capability grants (deny by default):

burn --allow-net=api.example.com,*.trusted.io script.js
burn --allow-listen=8080 server.js         # inbound: port list or a lo-hi range
burn --allow-fs=/tmp,/var/data etl.js
burn --allow-env=HOME,PATH launcher.js
burn -A runall.js                          # grant everything

See examples/ for standalone projects covering single UDF, batched UDF, multi-worker scheduling, streaming crypto, HostContext + capability grants, and rebuilding burn in 30 lines. examples/express-app runs a real Express.js app: require('express') resolves the actual npm package out of node_modules/ and serves HTTP end-to-end.


Packages, registry & package manager

Afterburner ships its own package ecosystem: its own package format, its own registry, and a built-in package manager. You don't need npm to publish or consume Afterburner code (and npm packages can still be pulled in as dependencies when you want them).

  • .afb packages: a package is a single, content-addressed, compressed file: a manifest (afb.toml), a capability grant (manifold.json), and your source/. Sealed by default; what it may touch is declared and reviewable before anyone installs it. JavaScript or TypeScript (TS is transpiled to JS at pack time).
  • Registry: publish and install packages from the Afterburner registry (afterburner-cloud client + the afterburner-registry service). Coordinates are namespace/name@version; every release is pinned by SHA-256 digest.
  • Cargo-style package manager: burn install resolves the full dependency graph with a conflict-driven version solver, writes a reproducible burn.lock, and caches packages content-addressed. Two kinds of dependency, both declared (never vendored into your artifact): [dependencies] for other registry packages and [npm] for npm packages, which a native, pure-Rust installer fetches and integrity-checks (no install scripts, native/C-ABI addons rejected).
burn init ./greeter --namespace nyquist --name greeter   # scaffold (add --ts for TypeScript)
burn test                                             # run tests in the sandbox
burn add nyquist/json-tools                              # pin a registry dependency
burn install                                          # resolve + cache the graph → burn.lock
burn package                                          # build the .afb (deterministic)
burn publish                                          # upload to the registry

Full authoring guide and the dependency-security model are in the documentation.


Use with AI coding agents

One command routes every piece of JavaScript your AI assistant writes through the sealed sandbox instead of raw node:

burn agent install     # arrow-key multi-select: Claude Code, Codex, Gemini CLI, Cursor, Copilot, Antigravity
burn agent status      # what's detected, wired, and current
burn agent uninstall   # exact inverse - configs restored, nothing left behind

It wires a pre-tool hook into each assistant's config (plus a short instruction block where the assistant reads one). When the assistant tries node app.js, npm test, or npx tsx ..., the hook hands back the corrected command - burn --sandbox node app.js - and the assistant re-runs it sealed: no network, no filesystem, no env access. Capabilities are granted per run, narrowly, only when the code genuinely needs them (burn --sandbox --allow-net=api.example.com node app.js). Runtime failures surface in the conversation prefixed BURN: so they're unmistakably the runtime speaking. One-off bypass: BURN_AGENT_HOOK=0.


Library usage (embedding the engine)

Besides the package toolchain, you can embed the engine directly in a Rust program to run untrusted JavaScript inside your own application. Add the crate, register a script, hand it JSON, get JSON back:

[dependencies]
afterburner = "0.1"
use afterburner::Afterburner;
use serde_json::json;

let ab = Afterburner::new()?;
let id = ab.register("module.exports = (d) => d.n + 1")?;
let out = ab.run(&id, &json!({ "n": 41 }))?;
assert_eq!(out, json!(42));

The default picks the best mode available (adaptive: native on the first call, WASM-sandboxed thereafter). Use Afterburner::builder() for mode, limits, and capabilities:

use afterburner::{Afterburner, Manifold, FsAccess};

let ab = Afterburner::builder()
    .fuel(1_000_000_000)
    .memory_bytes(64 << 20)
    .timeout_ms(30_000)
    .manifold(Manifold {
        fs: FsAccess::ReadWrite(vec!["/var/data".into()]),
        ..Manifold::sealed()
    })
    .threaded(8)
    .build()?;

Workspace Crates

Crate Purpose
afterburner Facade: Afterburner + builder, burn binary, one ergonomic entry point
afterburner-core Combustor trait, Manifold, FuelGauge, BurnCache, level-gated logging
afterburner-ignite Native JS engine, thread-local runtimes
afterburner-wasi Wasmtime sandbox with host-function imports, pooling allocator + InstancePre, bytecode cache
afterburner-node-compat plenum.js polyfill bundle + Rust-backed host impls (incl. bounded HTTP + DNS with per-call timeouts)
afterburner-flow High-level FlowEngine::load/execute/unload for flow-style pipelines
afterburner-adaptive Flying Start: native → WASM tier switch
afterburner-thrust Multi-threaded scheduler: bounded per-worker queues + global injector, token-bucket admission, NUMA-aware steal-when-idle, graceful drain
afterburner-plugin WASM-side runtime plugin (wasm32-wasip1)

License

Afterburner is source-available under the Business Source License 1.1 (BSL 1.1). Each version released under the BSL automatically converts to the Apache License, Version 2.0 four years after that version's release (its per-version Change Date). Versions released before the relicense (git tag last-apache-2.0) were never under the BSL and remain Apache-2.0.

The Apache-2.0 components shipped alongside the engine (everything under examples/ (see examples/LICENSE), plus the planned afterburner-afb and burn/* packages) are Apache-2.0 via their own LICENSE / license metadata and not subject to the BSL.

Free for non-commercial and non-production use. Individuals on personal projects, students on coursework, and non-commercial open-source projects (no paid sponsorship, no monetised hosting, no enterprise SLA), plus any internal evaluation/development/testing, are explicitly welcome, no separate agreement needed (see the Additional Use Grant in LICENSE).

Commercial license required to host, embed, or compete. Offering Afterburner as a hosted/managed service, embedding it in a commercial product distributed to third parties (OEM), or using it to build a competing offering requires a commercial license, including via forks, rebrands, vendored, or embedded copies. See LICENSING.md; contact info@afterburner.sh.

"Afterburner" and related marks are trademarks of vertexclique; see TRADEMARK.md. Contributions require a CLA.


BUSL-1.1 → Apache-2.0 (per-version, 4-year change)