
9/8/2023
What this post added
This post details an incremental migration strategy for porting Turborepo's core commands (`run` and `prune`) from Go to Rust. It introduces the "Rust-Go-Rust sandwich" (or "Go sandwich") architecture, where a Rust binary calls a Go binary which, in turn, calls statically linked Rust libraries. This approach uses protobuf for inter-language communication and Go build tags to enable toggling between Go and Rust implementations. The post also outlines a specific example of porting environment variable handling for the global hash calculation.