Lucet: A Compiler and Runtime for High-Concurrency Low-Latency Sandboxing
summary
Lucet is an ahead-of-time WebAssembly compiler and runtime that Fastly uses to run user code with Cranelift codegen and an artifact contract that guarantees memory layout and imports. It tiles fixed-size virtual-memory regions into slots to start instances in about 50 microseconds startup, supports millions of requests per second and enables guard-page bounds-check elision for faster stores. It works in production but still wrestles with host–guest protocol bugs, fairness of resource accounting and defenses against transient-execution attacks.
AI-written summary · about
chapters (38)
- 0:00Introduction
- 0:35Qualifications
- 1:33Personality
- 2:20Context
- 4:23Architecture
- 5:07Pop Distribution
- 6:50Functions as a Service
- 8:33In an ideal world
- 9:57Common practice
- 12:01Sandbox
- 17:15Project History
- 18:36Project Goals
- 19:39What is a compiler
- 20:03What is a parser
- 20:17What is a translator
- 20:38What is an artifact
- 21:37Code Generator
- 21:48Optimizer
- 22:53Runtime
- 23:33Runtime Components
- 25:29WebAssembly
- 25:55Heap
- 26:05WebAssembly Spec
- 27:08Bounce Check
- 27:42Pointer Length
- 27:59Bounce Checks
- 29:09Context Switch
- 30:47Memory Layout
- 31:03Memory Layout Example
- 35:59Memory Manager
- 36:40Limitations
- 36:53Protection
- 37:38Safety
- 39:06Fairness
- 41:23Transient Execution Attacks
- 42:49Industry Context
- 44:47Memory Security
- 52:29Attacks
related talks
37mLucet: Safe WebAssembly Outside the Browser
47mSecure Sandboxing in a Post-Spectre World
29mIsolation without Containers
32mIsolation without Containers
22mIsolation without Taxation: Near-Zero-Cost Transitions for WebAssembly and SFI
29mThe Return of Write Once, Run Anywhere
35mModern Sandboxing: Using Web Assembly in Java
05mClosing Remarks
