Operations 4 min read

Fish Shell Rewritten in Rust: Progress and Insights

The Fish shell, a user‑friendly command‑line interface for Linux and macOS, is being completely rewritten in Rust after years of C++ development, with the 4.0 beta showing nearly 100 % Rust code, thousands of commits, major line‑count conversions, easier builds, removed ncurses dependency, new features, and only minor remaining CMake challenges.

Java Tech Enthusiast
Java Tech Enthusiast
Java Tech Enthusiast
Fish Shell Rewritten in Rust: Progress and Insights

Fish is a user‑friendly command‑line shell for Linux and macOS, known for its out‑of‑the‑box features.

In early 2023 the project announced a rewrite in Rust to replace the C++ codebase.

Reasons include developer fatigue with C++/CMake, the growing Rust community, Rust’s concurrency support, and the desire to keep fish modern.

The beta of fish 4.0 shows 0 % C++ and almost 100 % pure Rust: 1 155 files changed, 110 247 additions, 88 941 deletions, 2 604 commits from over 200 contributors, 498 issues, a two‑year development cycle, and a conversion of ~57 000 C++ lines to ~75 000 Rust lines (plus 400 C lines).

Benefits observed are the removal of ncurses dependencies, easier builds with Rust crates, and new features previously impossible in C++. Some drawbacks remain, such as the inability to drop CMake completely.

The team reports steady progress and a codebase they are proud of, with more features under development.

Rustopen-sourceFish ShellShell DevelopmentSoftware Rewrite
Java Tech Enthusiast
Written by

Java Tech Enthusiast

Sharing computer programming language knowledge, focusing on Java fundamentals, data structures, related tools, Spring Cloud, IntelliJ IDEA... Book giveaways, red‑packet rewards and other perks await!

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.