From 512b2afdb9c36611940915510466975a3f70d7f8 Mon Sep 17 00:00:00 2001 From: James Sturtevant Date: Wed, 6 May 2026 16:47:53 -0700 Subject: [PATCH 1/3] Update talk with link to video Signed-off-by: James Sturtevant --- src/content/docs/blog/hyperlight-wasmcon-kubecon-eu-2026.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/content/docs/blog/hyperlight-wasmcon-kubecon-eu-2026.mdx b/src/content/docs/blog/hyperlight-wasmcon-kubecon-eu-2026.mdx index 3fc5b8e..d82a726 100644 --- a/src/content/docs/blog/hyperlight-wasmcon-kubecon-eu-2026.mdx +++ b/src/content/docs/blog/hyperlight-wasmcon-kubecon-eu-2026.mdx @@ -1,8 +1,9 @@ --- title: "Upcoming Talk: Running Wasmtime in Hardware-Isolated Microenvironments" date: 2026-03-23 +lastUpdated: 2026-05-06 --- At WasmCon, co-located with KubeCon + CloudNativeCon Europe 2026 in Amsterdam on March 23, [Danilo (Dan) Chiarlone](https://github.com/danbugs) from Microsoft will present on running the Wasmtime WebAssembly runtime inside Hyperlight's hardware-isolated micro-VMs. This talk will explore how combining Wasmtime with Hyperlight provides dual-layer security — a WebAssembly software sandbox inside a hypervisor-enforced VM boundary — while maintaining fast cold starts. -[View the session and add it to your calendar](https://colocatedeventseu2026.sched.com/event/2DY28) +The recording is now available! [Watch the talk on YouTube](https://www.youtube.com/watch?v=jwta07eFEJE). \ No newline at end of file From 2ab6be2f386ba1ea1c8d5a420630863d2b772599 Mon Sep 17 00:00:00 2001 From: James Sturtevant Date: Wed, 6 May 2026 16:57:48 -0700 Subject: [PATCH 2/3] Add favicon Signed-off-by: James Sturtevant --- astro.config.mjs | 1 + public/favicon.png | Bin 0 -> 12607 bytes 2 files changed, 1 insertion(+) create mode 100644 public/favicon.png diff --git a/astro.config.mjs b/astro.config.mjs index 85d1c15..22cc618 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -8,6 +8,7 @@ export default defineConfig({ integrations: [ starlight({ title: 'Hyperlight', + favicon: '/favicon.png', components: { Footer: './src/components/HyperlightFooter.astro' }, diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d479e531f203a066a905417063aa8581191b75 GIT binary patch literal 12607 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 Date: Wed, 6 May 2026 20:03:25 -0700 Subject: [PATCH 3/3] Add more projects and make it easier to see them and what they do Signed-off-by: James Sturtevant --- astro.config.mjs | 9 +++- package-lock.json | 8 +++ src/content/docs/resources/projects.mdx | 54 ------------------- .../resources/projects/cargo-hyperlight.mdx | 24 +++++++++ .../docs/resources/projects/hyperagent.mdx | 32 +++++++++++ .../docs/resources/projects/hyperlight-js.mdx | 46 ++++++++++++++++ .../resources/projects/hyperlight-nanvix.mdx | 36 +++++++++++++ .../resources/projects/hyperlight-sandbox.mdx | 35 ++++++++++++ .../resources/projects/hyperlight-wasm.mdx | 31 +++++++++++ src/content/docs/resources/projects/index.mdx | 19 +++++++ 10 files changed, 239 insertions(+), 55 deletions(-) delete mode 100644 src/content/docs/resources/projects.mdx create mode 100644 src/content/docs/resources/projects/cargo-hyperlight.mdx create mode 100644 src/content/docs/resources/projects/hyperagent.mdx create mode 100644 src/content/docs/resources/projects/hyperlight-js.mdx create mode 100644 src/content/docs/resources/projects/hyperlight-nanvix.mdx create mode 100644 src/content/docs/resources/projects/hyperlight-sandbox.mdx create mode 100644 src/content/docs/resources/projects/hyperlight-wasm.mdx create mode 100644 src/content/docs/resources/projects/index.mdx diff --git a/astro.config.mjs b/astro.config.mjs index 22cc618..bf0a9aa 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -21,7 +21,14 @@ export default defineConfig({ ], }, { - label: 'Resources', autogenerate: {directory: 'resources'} + label: 'Resources', + items: [ + { slug: 'resources/community' }, + ], + }, + { + label: 'Projects', + autogenerate: { directory: 'resources/projects' }, }, ], plugins: [starlightBlog({})], diff --git a/package-lock.json b/package-lock.json index d4a99c1..9614900 100644 --- a/package-lock.json +++ b/package-lock.json @@ -120,6 +120,7 @@ "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.37.6.tgz", "integrity": "sha512-wQrKwH431q+8FsLBnNQeG+R36TMtEGxTQ2AuiVpcx9APcazvL3n7wVW8mMmYyxX0POjTnxlcWPkdMGR3Yj1L+w==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/markdown-remark": "^6.3.1", "@astrojs/mdx": "^4.2.3", @@ -1841,6 +1842,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2001,6 +2003,7 @@ "resolved": "https://registry.npmjs.org/astro/-/astro-5.17.1.tgz", "integrity": "sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/compiler": "^2.13.0", "@astrojs/internal-helpers": "0.7.5", @@ -3689,6 +3692,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -5077,6 +5081,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -5542,6 +5547,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -6336,6 +6342,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -6534,6 +6541,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/content/docs/resources/projects.mdx b/src/content/docs/resources/projects.mdx deleted file mode 100644 index 9dd9557..0000000 --- a/src/content/docs/resources/projects.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Related Hyperlight Projects -description: Hyperlight related projects which provide additional functionality for language support or runtime support. ---- - -import { Aside, LinkButton } from '@astrojs/starlight/components'; - -Each of the projects below leverage Hyperlight for isolation and provide support for language runtimes, POSIX -microkernels, and much more. - -## Hyperlight Wasm - -Hyperlight Wasm is a project that enables Wasm modules to be run within the Hyperlight secure boundary using -Wasmtime. Its purpose is to enable applications to run untrusted or third party Wasm code within the VM -isolation boundary with very low latency and resource utilization. - - -Get Started with Hyperlight Wasm -Hyperlight Wasm Docs - -## Hyperlight Nanvix - -Hyperlight Nanvix is a project that runs the [Nanvix][nanvix] microkernel inside the Hyperlight secure boundary. The Nanvix -microkernel provides support for a broad set of POSIX APIs and support delegation of syscalls between the host and -guest as well as syscall interposition (interception). - -The broad POSIX compatability of Nanvix provides the ability to run JavaScript, Python, C, C++, and Rust programs. -Similar to Hyperlight runtimes, Hyperlight Nanvix offers low latency cold starts in the 10 - 20 millisecond range for -optimized workloads. - -Get Started with Hyperlight Nanvix -Hyperlight Nanvix Docs - -## Cargo Hyperlight - -Cargo Hyperlight is a `cargo` subcommand to help with building Hyperlight guest binaries. - -Hyperlight's extremely limited guest API can make it challenging to build guests targeting the environment. `cargo-hyperlight` -was created to make it easier to build guest binaries. In fact, if your bin or any of its dependencies have a `build.rs` -script using `cc` and `bindgen` to compile C code and generate bindings, they will often work without change! - -Get Started with cargo-hyperlight -cargo-hyperlight Docs - -## Hyperlight JavaScript - -Hyperlight runtime for executing JavaScript within the Hyperlight secure boundary. It provides the ability to cold -start JS applications in single digit milliseconds, perfect for the basis of a functions runtime. The runtime also -provides the ability to register host functions which allow for extending functionality of the guest JavaScript -code executing within the Hypervisor protected boundary. - - - -[nanvix]: https://github.com/nanvix/ \ No newline at end of file diff --git a/src/content/docs/resources/projects/cargo-hyperlight.mdx b/src/content/docs/resources/projects/cargo-hyperlight.mdx new file mode 100644 index 0000000..51218a9 --- /dev/null +++ b/src/content/docs/resources/projects/cargo-hyperlight.mdx @@ -0,0 +1,24 @@ +--- +title: Cargo Hyperlight +description: A cargo subcommand to simplify building Hyperlight guest binaries. +--- + +import { LinkButton } from '@astrojs/starlight/components'; + +Cargo Hyperlight is a `cargo` subcommand to help with building Hyperlight guest binaries. + +Hyperlight's extremely limited guest API can make it challenging to build guests targeting the environment. `cargo-hyperlight` +was created to make it easier to build guest binaries. In fact, if your bin or any of its dependencies have a `build.rs` +script using `cc` and `bindgen` to compile C code and generate bindings, they will often work without change! + +```bash +# Install +cargo install cargo-hyperlight + +# Build a guest binary +cd my-hyperlight-guest +cargo hyperlight build --release +``` + +GitHub +API Docs diff --git a/src/content/docs/resources/projects/hyperagent.mdx b/src/content/docs/resources/projects/hyperagent.mdx new file mode 100644 index 0000000..b6d4125 --- /dev/null +++ b/src/content/docs/resources/projects/hyperagent.mdx @@ -0,0 +1,32 @@ +--- +title: HyperAgent +description: A sandboxed code-acting AI agent runtime built on Hyperlight micro-VMs. +--- + +import { Aside, LinkButton } from '@astrojs/starlight/components'; + + + +HyperAgent is a sandboxed code-acting AI agent runtime: it writes JavaScript handlers, validates them, and runs them +inside hardware-isolated Hyperlight micro-VMs using the [GitHub Copilot SDK](https://github.com/github/copilot-sdk). + +It is built for useful, bounded work: data analysis, document generation, API workflows, secure file output, and tool +use through plugins and MCP servers. The model can write code, but the code runs in a sandbox with no direct +filesystem, shell, or network access unless you explicitly enable narrowly scoped host capabilities. + +```bash +hyperagent --skill pptx-expert --profile web-research \ + --prompt "Create a presentation on the NASA Artemis II mission \ + include lots of statistics and data, use an appropriate theme \ + and color scheme for the subject, make it stunning" +``` + +| Instead of | HyperAgent gives you | +| ------------------------- | ------------------------------------------------------------- | +| Shell-first automation | Code-first handlers validated and run in a micro-VM | +| Ambient filesystem access | Path-jailed read/write plugins | +| Ambient network access | Domain-scoped fetch with SSRF checks | +| Ad hoc tool calls | Normal JavaScript APIs for approved capabilities | +| Hidden agent state | Explicit shared state, transcript logs, and timing logs | + +GitHub diff --git a/src/content/docs/resources/projects/hyperlight-js.mdx b/src/content/docs/resources/projects/hyperlight-js.mdx new file mode 100644 index 0000000..6a93abe --- /dev/null +++ b/src/content/docs/resources/projects/hyperlight-js.mdx @@ -0,0 +1,46 @@ +--- +title: Hyperlight JavaScript +description: Execute JavaScript within the Hyperlight secure boundary with single digit millisecond cold starts. +--- + +Hyperlight JavaScript is a runtime for executing JavaScript within the Hyperlight secure boundary. It provides the ability to cold +start JS applications in single digit milliseconds, perfect for the basis of a functions runtime. The runtime also +provides the ability to register host functions which allow for extending functionality of the guest JavaScript +code executing within the hypervisor-protected boundary. + +```rust +use hyperlight_js::{SandboxBuilder, Script}; + +fn main() -> anyhow::Result<()> { + // Create a sandbox and load the JS runtime + let proto = SandboxBuilder::new().build()?; + let mut js_sandbox = proto.load_runtime()?; + + // Register a JavaScript handler inline + let handler = Script::from_string(r#" + function fibonacci(n) { + if (n <= 0) return 0; + if (n === 1) return 1; + return fibonacci(n - 1) + fibonacci(n - 2); + } + + function handler({ n }) { + return { fib: fibonacci(n) }; + } + + export { handler }; + "#)?; + js_sandbox.add_handler("fibonacci".to_string(), handler)?; + + // Load the sandbox and invoke the handler with a JSON event + let mut loaded = js_sandbox.get_loaded_sandbox()?; + let result = loaded.handle_event( + "fibonacci".to_string(), + r#"{ "n": 10 }"#.to_string(), + None, + )?; + println!("{result}"); // {"fib":55} + + Ok(()) +} +``` diff --git a/src/content/docs/resources/projects/hyperlight-nanvix.mdx b/src/content/docs/resources/projects/hyperlight-nanvix.mdx new file mode 100644 index 0000000..9d4b733 --- /dev/null +++ b/src/content/docs/resources/projects/hyperlight-nanvix.mdx @@ -0,0 +1,36 @@ +--- +title: Hyperlight Nanvix +description: Run the Nanvix microkernel inside Hyperlight for broad POSIX compatibility. +--- + +import { LinkButton } from '@astrojs/starlight/components'; + +Hyperlight Nanvix runs the [Nanvix](https://github.com/nanvix/) microkernel inside the Hyperlight secure boundary. The Nanvix +microkernel provides support for a broad set of POSIX APIs and support delegation of syscalls between the host and +guest as well as syscall interposition (interception). + +The broad POSIX compatibility of Nanvix provides the ability to run JavaScript, Python, C, C++, and Rust programs. +Similar to Hyperlight runtimes, Hyperlight Nanvix offers low latency cold starts in the 10–20 millisecond range for +optimized workloads. + +```rust +use hyperlight_nanvix::{Sandbox, RuntimeConfig}; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + let config = RuntimeConfig::new() + .with_log_directory("/tmp/hyperlight-nanvix") + .with_tmp_directory("/tmp/hyperlight-nanvix"); + + let mut sandbox = Sandbox::new(config)?; + + sandbox.run("guest-examples/hello.js").await?; // JavaScript + sandbox.run("guest-examples/hello.py").await?; // Python + sandbox.run("guest-examples/hello-c").await?; // C binary + + Ok(()) +} +``` + +GitHub +API Docs diff --git a/src/content/docs/resources/projects/hyperlight-sandbox.mdx b/src/content/docs/resources/projects/hyperlight-sandbox.mdx new file mode 100644 index 0000000..0287488 --- /dev/null +++ b/src/content/docs/resources/projects/hyperlight-sandbox.mdx @@ -0,0 +1,35 @@ +--- +title: Hyperlight Sandbox +description: A multi-backend sandboxing framework for running untrusted code with controlled host capabilities. +--- + +import { LinkButton } from '@astrojs/starlight/components'; + +Hyperlight Sandbox is a multi-backend sandboxing framework for running untrusted code with controlled host capabilities. +It provides a unified API across multiple isolation backends (Wasm Component, HyperlightJS, Nanvix) with a common +capability model and SDKs for Python, .NET, and Rust. + +Key features include: + +- **Secure code execution** — Run untrusted code in hardware-isolated sandboxes (KVM, MSHV, Hyper-V) +- **Host tool dispatch** — Register callables as tools; guest code invokes them by name with schema-validated arguments +- **Capability-based file access** — Read-only `/input` directory, writable `/output` directory, strict path isolation +- **Snapshot / restore** — Capture and rewind sandbox runtime state for reuse +- **Network allow listing** — Network traffic is off by default; allow specific domains and HTTP verbs + +```python +from hyperlight_sandbox import Sandbox + +sandbox = Sandbox(backend="wasm", module="python_guest.path") +sandbox.register_tool("add", lambda a=0, b=0: a + b) +sandbox.allow_domain("https://httpbin.org") + +result = sandbox.run(""" +total = call_tool('add', a=3, b=4) +resp = http_get('https://httpbin.org/get') +print(f"3 + 4 = {total}, HTTP status: {resp['status']}") +""") +print(result.stdout) +``` + +GitHub diff --git a/src/content/docs/resources/projects/hyperlight-wasm.mdx b/src/content/docs/resources/projects/hyperlight-wasm.mdx new file mode 100644 index 0000000..aa4fbe0 --- /dev/null +++ b/src/content/docs/resources/projects/hyperlight-wasm.mdx @@ -0,0 +1,31 @@ +--- +title: Hyperlight Wasm +description: Run Wasm modules within Hyperlight's secure boundary using Wasmtime. +--- + +import { LinkButton } from '@astrojs/starlight/components'; + +Hyperlight Wasm enables Wasm modules to be run within the Hyperlight secure boundary using +Wasmtime. Its purpose is to enable applications to run untrusted or third party Wasm code within the VM +isolation boundary with very low latency and resource utilization. + +```rust +// Load and call the component from your host application +let mut sb = hyperlight_wasm::SandboxBuilder::new().build().unwrap(); +let rt = bindings::register_host_functions(&mut sb, state); + +let sb = sb.load_runtime().unwrap(); +let sb = sb.load_module("component_sample.aot").unwrap(); + +let mut wrapped = bindings::ExampleSandbox { sb, rt }; +let instance = bindings::component_sample::example::ExampleExports::adder(&mut wrapped); + +let result = instance.add(1, 2); +println!("1 + 2 = {result}"); // 1 + 2 = 3 + +let result = instance.call_host("Hello".to_string()); +println!("{result}"); // Hello from component and the host! +``` + +GitHub +API Docs diff --git a/src/content/docs/resources/projects/index.mdx b/src/content/docs/resources/projects/index.mdx new file mode 100644 index 0000000..8f921e5 --- /dev/null +++ b/src/content/docs/resources/projects/index.mdx @@ -0,0 +1,19 @@ +--- +title: Overview +description: Hyperlight related projects which provide additional functionality for language support or runtime support. +sidebar: + order: 0 +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + +The following projects are part of the Hyperlight family, providing language runtimes, sandboxing frameworks, developer tools, and more. + + + + + + + + + \ No newline at end of file