~/talk

Porting Turborepo From Go To Rust

Talkat LambdaConf 2024 · 2024-05-04..05-10· [rust, nodejs]
slides:none on file

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

  1. 0:00Introduction
  2. 3:07Why Port
  3. 5:44How To Port
  4. 8:20The Problems
  5. 11:40The Go Sandwich
  6. 14:53CrossCompile
  7. 17:25Run Outline
  8. 18:23Rust
  9. 19:05Prune
  10. 19:49Hashing
  11. 20:25Captain Proto
  12. 21:25Alver Tests
  13. 22:41What We Learned
  14. 24:39Things We Couldve Done Better
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.