The beta release of the f4 file manager 0.3.0 has been published. This project replicates the interface, behavior, and internal structure of Far Manager and far2l but is rewritten in Go using a 'clean room' methodology. The code is distributed under the BSD license and written with the assistance of AI. Manual reviews replace a large set of automated tests that run in CI across multiple OS and architectures. Ready builds are created for Linux, Windows (including a separate build for Windows 7/8/8.1), ReactOS, macOS, FreeBSD, OpenBSD, NetBSD, DragonFly BSD, and Android (Termux). Experimental support is provided for Illumos and Solaris, with porting efforts underway for Redox, GNU Hurd, and Haiku.
Main Features:
- Delivery as a single statically compiled executable file with no external dependencies (a CGO-free build). Supported architectures include x86-64, x86, ARM64, ARMv7, RISC-V, LoongArch, MIPS, and POWER.
- Operation in a terminal or a separate graphical window. The terminal supports the kitty protocol and Win32 Input Mode, leading to different key combinations, such as Ctrl+Enter and Shift+Tab. For graphical mode, backends include X11, Wayland, Win32 GDI, Cocoa, Ebitengine, and gogpu with hardware acceleration.
- An integrated terminal beneath the panels, similar to far2l. In Windows, it operates both through ConPTY and without it, using the Windows Console API.
- An integrated editor with syntax highlighting (Colorer and Chroma) and a viewer with a hexadecimal dump preview mode. Large files open without being fully loaded into memory.
- Asynchronous VFS allowing interaction with archives (including nested ones), SFTP/FTP, S3, WebDAV, Google Drive, Yandex Disk, the Windows registry, Android devices (via ADB), and iPhones (via AFC). Any VFS can be mounted via FUSE as a regular directory.
- The FISH+ protocol builds on the FISH idea from Midnight Commander. Search, indexing, and lengthy operations are performed on the server side, allowing direct file copying between servers. serverPlugins operate as separate processes and communicate with the core via MessagePack through stdin/stdout, enabling them to be written in any language. Plugins for Lua (API in the spirit of Far3/far2m) and WebAssembly are supported, with a directory for their distribution named PlugRing.
- Lua macros, a command palette (Ctrl+Shift+P), key remapping, flexible file coloring, and portable mode.
- Embedded SQLite client and a DOS Navigator-style spreadsheet, image viewer, audio player, media file information, directory comparison, and synchronization, plus an AI panel.
- Embedded SQLite client and DOS Navigator-style spreadsheet, image viewer, audio player, media file information, directory comparison, and synchronization, along with an AI panel.
- The interface has been translated into 23 languages. Text input with BiDi and complex grapheme clusters is supported.
- Self-update with the command "f4 --update", packages for Homebrew, Nix (flake and Home Manager module), and Termux. There is a lightweight lite build for routers and low-end hardware.
Differences from other file managers:
- Far Manager works only in Windows. f4 carries its interface and familiar key combinations to Linux, macOS, BSD, and Android. Binary plugins for Far (DLL) are not supported, but a Lua API for plugins is modeled after Far3/far2m.
- far2l is a port of Far 2 for Linux, macOS, and BSD, written in C++ under the GPLv2 license. f4 is not a port but a new implementation in Go under the BSD license. In addition to Unix-like systems, f4 works in Windows and ReactOS, is not dependent on wxWidgets or system libraries, and plugins can be written in any language.
- Midnight Commander is written in C (GPLv3), is designed for Unix-like systems, and follows its operational model and key layout. f4 replicates the behavior of Far/far2l, has a graphical mode, and natively works in Windows. The archive for the Linux x86-64 build is about 35 MB, while mc is a few megabytes.
- M-Commander is a fork of mc in C and Lua (GPLv3+). It features pluggable panels (Git, Docker, Kubernetes, MongoDB, S3, etc.), and instead of a subshell, it uses an integrated PTY terminal. M-Commander maintains the mc interface and is available as packages for Linux and macOS. f4 is developing in a similar direction (expandable panels, built-in terminal) but with the Far interface, supporting Windows and BSD, and delivered as a single binary file.

Source: opennet.ru
