Learn how we're cross-compiling a Rust-Go-Rust sandwich to six platforms. We’ve been porting Turborepo , the high-performance build system for JavaScript and TypeScript, from Go to Rust. We talked about how we started the porting process , so now let’s talk about how we began porting our two main commands: run and prune . Link to heading Since last time When we last left off, we had begun our port by implementing global turbo and command line argument parsing in Rust. Because of issues around static linking and Go’s incompatibility with musl , an essential requirement for compatibility with Alpine Linux, we split Turborepo into two binaries: one Rust and one Go. After that, we ported the auxiliary commands like login , link , unlink . These were fairly simple to port since they only required a basic HTTP client and some configuration management. We were able to move them in one or two pull requests at a time.…