Explore the integration of Rust with JavaScript through asm.js and WebAssembly targets in this 45-minute conference talk. Delve into the challenges of interacting with DOM API, JavaScript libraries, and Node.js built-ins from Rust. Learn low-level techniques for wrapping common browser APIs into Rust interfaces and discover methods for interacting with JavaScript objects without native garbage collection support in Rust. Gain insights into exporting functions, generated and optimized code in asm.js and WebAssembly, memory models, and garbage collection. Compare performance metrics, including a 2.8M JSON parsing example, to understand the potential of Rust-JavaScript integration.
Overview
Syllabus
Intro
JavaScript: true cross-platform target
Rust (LLVM)
Emscripten + Rust
Exporting functions
Generated code (asm.js)
Optimized code (asm.js)
Optimized code (WASM)
Memory model
Calling JavaScript
_embind_register_
Garbage collection
Speed (2.8M JSON)
Taught by
Rust