Integrating Rust into Tor: Successes and Challenges
summary
Experiment records that Rust replaces individual Tor components with measurable results: one submodule rewrites slot into C with no caller changes, a Rust-only feature (precount differential-privacy) lands and runs, and maintaining two simultaneous parsers produces multiple bugs and CVEs. Tooling notes list bindgen struggles, sanitizer linker conflicts prompting stubbing out test versions, and relief from Rust's global allocator. Open questions include platform coverage, build reproducibility and the cost of duplicated FFI types.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 2:10What is Tor
- 4:02How we started with Rust
- 7:03Critical questions
- 10:32Linking issues with tests
- 12:16Rewriting the module
- 16:50What we learned
- 23:05Rewriting Rust
- 23:52Running Code Standards Guide
- 25:49Unit Tests
related talks
01h 11mDuck-Tape Chronicles - Rust C++ Interop
46mRust for Linux
58mRust for The Curious C++ Developers
26mMoving to modern languages in long-living projects
45mBuilding Safe and Secure Systems in Rust
40mRust’s approach of getting things right
19mCounterexamples in Safe Rust
20mAn Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise
