De bètaversie van de bestandsbeheerder f4 0.3.0 is uitgebracht. Het project reproduceert de interface, het gedrag en de interne structuur van Far Manager en far2l, maar is opnieuw geschreven in de programmeertaal Go, met behulp van de "schone kamer" methodologie. De code is beschikbaar onder de BSD-licentie en is geschreven door AI-assistenten. Handmatige beoordelingen vervangen een groot aantal automatische tests, die in CI op verschillende besturingssystemen en architecturen worden uitgevoerd. Voltooide builds worden gemaakt voor Linux, Windows (inclusief een aparte build voor Windows 7/8/8.1), ReactOS, macOS, FreeBSD, OpenBSD, NetBSD, DragonFly BSD en Android (Termux). Experimentele ondersteuning is beschikbaar voor Illumos en Solaris, en er wordt gewerkt aan de portering naar Redox, GNU Hurd en Haiku.
Belangrijkste mogelijkheden:
- Levering als één statisch gecompileerd uitvoerbare bestand zonder externe afhankelijkheden (build zonder CGO). Ondersteunde architecturen zijn x86-64, x86, ARM64, ARMv7, RISC-V, LoongArch, MIPS en POWER.
- Werken in de terminal of in een apart grafisch venster. In de terminal worden de protocols kitty en Win32 Input Mode ondersteund, die verschillende toetscombinaties zoals Ctrl+Enter en Shift+Tab onderscheiden. Voor de grafische modus zijn er backends X11, Wayland, Win32 GDI, Cocoa, Ebitengine en gogpu met hardwareversnelling.
- Ingebouwde terminal onder de panelen, zoals in far2l. In Windows werkt het zowel via ConPTY als zonder, via de Windows Console API.
- Ingebouwde editor met syntaxisverlichting (Colorer en Chroma) en een kijker met de mogelijkheid om hex-dumps weer te geven. Grote bestanden worden geopend zonder dat ze volledig in het geheugen worden geladen.
- Asynchrone VFS, waardoor je kunt werken met archieven (inclusief geneste), SFTP/FTP, S3, WebDAV, Google Drive, Yandex Disk, het Windows-register, Android-apparaten (via ADB) en iPhone (via AFC). Iedere VFS kan via FUSE worden gemonteerd als een gewone map.
- Het FISH+-protocol ontwikkelt het idee van FISH uit Midnight Commander. Zoekacties, indexering en langdurige bewerkingen worden aan de serverzijde uitgevoerd, de server, bestanden kunnen rechtstreeks tussen servers worden gekopieerd.
- Plugins werken als afzonderlijke processen en communiceren met de kernel via MessagePack via stdin/stdout, zodat ze in elke taal kunnen worden geschreven. Er zijn plugins op Lua (API in de geest van Far3/far2m) en WebAssembly, en er is een PlugRing-catalogus voor hun distributie.
- Macros in Lua, commandopallet (Ctrl+Shift+P), toetsherconfiguratie, flexibele Bestandskleuring, draagbare modus.
- Ingebouwde SQLite-client en spreadsheet in de stijl van DOS Navigator, afbeeldingsweergave, audioplayer, media-informatie, mapvergelijking en synchronisatie, AI-paneel.
- De interface is vertaald in 23 talen. Tekstinvoer met BiDi en complexe graphemische clusters wordt ondersteund.
- Zelfupdate met het commando 'f4 —update', pakketten voor Homebrew, Nix (flake en module Home Manager) en Termux. Voor routers en zwakke hardware is er een lichtere lite-versie beschikbaar.
Verschillen met andere bestandsbeheerders:
- Far Manager werkt alleen op Windows. f4 brengt de interface en gebruikelijke sneltoetsen naar Linux, macOS, BSD en Android. Binaire plugins van Far (DLL) worden niet ondersteund, maar de Lua API voor plugins is geïnspireerd op Far3/far2m.
- far2l is de port van Far 2 naar Linux, macOS en BSD, geschreven in C++ onder de GPLv2-licentie. f4 is geen port, maar een nieuwe implementatie in Go onder de BSD-licentie. Naast Unix-achtige systemen werkt f4 ook op Windows en ReactOS, het is niet afhankelijk van wxWidgets of systeembibliotheken, en plugins kunnen in elke programmeertaal worden geschreven.
- Midnight Commander is geschreven in C (GPLv3), is bedoeld voor Unix-achtige systemen en volgt zijn eigen werkmodel en keymap. f4 herhaalt het gedrag van Far/far2l, heeft een grafische modus en werkt native op Windows. Het archief met de versie voor Linux x86-64 is ongeveer 35 MB groot, terwijl mc enkele megabytes is.
- M-Commander is een fork van mc in C en Lua (GPLv3+). Het heeft plug-in panelen (Git, Docker, Kubernetes, MongoDB, S3, enz.), en in plaats van subshell wordt een ingebouwde PTY-terminal gebruikt. M-Commander behoudt de interface van mc en wordt geleverd in de vorm van pakketten voor Linux en macOS. f4 ontwikkelt zich in een vergelijkbare richting (uitbreidbare panelen, ingebouwde terminal), maar met de interface van Far, ondersteuning voor Windows en BSD, en wordt geleverd als één enkel binaire bestand.

Bron: opennet.ru
