Fish Shell 4.0 drops C++ for Rust to simplify development and enhance performance

Fish Shell 4.0 drops C++ for Rust to simplify development and enhance performance

Fish, the command line shell known for its user-friendly interface on Linux and macOS, has undergone a significant transformation with the release of version 4.0. The shell has been completely rewritten in Rust, moving away from its previous C++ codebase. This change, initially a humorous suggestion among developers, quickly gained traction as a popular request within the community.

The transition to Rust marks a substantial shift for Fish, which had previously been ported from C to C++ earlier in its development history. The decision to adopt Rust was driven by challenges the developers faced with C++, including issues with tools, compiler and platform differences, ergonomics, and thread safety.

Rust's features, particularly Send and Sync, offer Fish enhanced multithreading capabilities, ensuring thread safety and performance improvements. This has enabled Fish to enhance its autosuggestion and syntax highlighting features, introducing asynchronous prompts and non-blocking completions. The Rust-based Fish also facilitates the provision of updated packages for systems with older software, such as LTS Linux distributions and older versions of macOS. However, the new version no longer supports Cygwin at the moment.

Version 4.0 represents a milestone for Fish, embracing modern programming paradigms to enhance user experience and maintainability.

by Paul

fish iconfish
  113
  • Shell
  • FreeOpen Source
  • ...

fish is a user-friendly command line shell designed for UNIX-like operating systems, including Linux. As a terminal emulator, fish offers features such as sane defaults, autocompletion, and color coding, enhancing the command line experience. With a rating of 4.2, it stands out for its usability and efficiency. Alternatives to fish include PowerShell, GNU Bourne Again SHell, and Zsh.

No comments so far, maybe you want to be first?
Gu