Porting Turborepo From Go To Rust
summary
Turborepo moves from Go to Rust incrementally: start with a Rust shim and CI parser, port hot dependencies via a Rust-Go-Rust sandwich, then build a full Rust execution pipeline. The team rewrites ~70,000 lines in 15 months, cross-compiles for six targets using Zig for C toolchains, and uses clap, protobuf/CapnProto, napi, swc, biome and pretty-print libraries. The result ships as an all-Rust 1.11 release, reduces issues, yields modest perf gains, and adds better errors and a new UI.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 3:07Why Port
- 5:44How To Port
- 8:20The Problems
- 11:40The Go Sandwich
- 14:53CrossCompile
- 17:25Run Outline
- 18:23Rust
- 19:05Prune
- 19:49Hashing
- 20:25Captain Proto
- 21:25Alver Tests
- 22:41What We Learned
- 24:39Things We Couldve Done Better
related talks
01h 42mGo Vs Rust Round Table
30mIntegrating Rust into Tor: Successes and Challenges
23mRebuilding in Rust for Good Reason
36mPumping up Python modules using Rust
26mMoving to modern languages in long-living projects
54mUnwrap()Ing Rust on Embedded Linux
01h 43mRust Vs Go Panel
34mLooking Back at Rust Usage for Guest Tools
