Fish Shell 4.0: An Epic Rewrite from C++ to Rust

2024-12-28

The Fish shell team completed a massive undertaking: rewriting Fish shell from C++ to Rust over nearly two years. Driven by limitations in C++'s tooling, compiler/platform differences, ergonomics, and thread safety, the team chose Rust to enhance performance, security, and developer experience. Employing a "Ship of Theseus" approach, they incrementally replaced components, ensuring stability throughout the process. While challenges arose, such as compatibility issues with autocxx, the team successfully released the Fish 4.0 beta, boasting performance improvements, new features, and easier-to-install statically linked versions.

Read more
Development