Building Bridges: Safe Interactions with Foreign Languages through Omniglot
summary
Omniglot enforces Rust soundness when calling unmodified C libraries by interposing on the FFI, validating values at call boundaries and tracking foreign pointers with a new type/state system that binds references to allocation and access scopes. Implementations target Linux userspace using x86 memory protection keys and a constrained embedded kernel; evaluation shows direct-memory interaction beats IPC/serialization (Sandrust) and isolation dominates overheads, with Omniglot adding only about 0–5% additional cost while preserving memory and type safety.
AI-written summary · about
chapters (8)
- 0:00Memory safety in systems
- 1:25Legacy Rust rewrites
- 2:28Unsafe FFI risks
- 3:52Validating foreign values
- 8:27Mutable aliasing prevention
- 14:05Omniglot’s type system
- 15:09Omniglot in real systems
- 16:35Summary
related talks
35m"Memory Safety is Merely Table Stakes [...]"
28m"Rust Interop: Memory Safety Across Foreign Function Boundaries"
01h 01mMemory Safety: Rust vs. C
21mMind the Boundary: Detecting Undefined Behavior Across Rust’s FFI
45mBuilding Safe and Secure Systems in Rust
59mWhat's the deal with unsafe Rust?
30mIntegrating Rust into Tor: Successes and Challenges
04m"Scaling Safety: Rust at Google”
