How Turborepo is porting from Go to Rust
Jul 21, 2023

Summary
This post details the 'how' of Turborepo's migration from Go to Rust, focusing on an incremental porting strategy over a full rewrite. It explains the implementation of the global `turbo` feature using a Rust shim and CGO, and the porting of CLI argument parsing using the `clap` crate and JSON serialization for interop. It also highlights challenges encountered on Windows, specifically with MSVC vs. MinGW toolchains and UNC paths, and the resolution of moving the Rust toolchain to MinGW.