Yazi (chiń. „鸭子” oznacza „kaczka”) to niesamowicie szybki terminalowy menedżer plików, napisany w Rust, oparty na nieblokującym asynchronicznym wejściu-wyjściu. Jego celem jest zapewnienie efektywnego, wygodnego i konfigurowalnego doświadczenia zarządzania plikami.
Yazi jest rozpowszechniany na licencji MIT.
Kompaktowość i łatwość wbudowania w inne projekty. Kod składa się jedynie z kilku plików w języku C, które nie wymagają do kompilacji zewnętrznych zależności. Skompilowana najprostsza aplikacja zajmuje około 190 KB;
- 🚀 Pełne wsparcie dla asynchroniczności: wszystkie operacje wejścia-wyjścia są asynchroniczne, zadania CPU rozdzielane są na wiele wątków, co pozwala maksymalnie wykorzystać dostępne zasoby.
- 💪 Potężne asynchroniczne planowanie i zarządzanie zadaniami.
- 🖼️ Wbudowane wsparcie dla wielu protokołów wyświetlania obrazów w terminalu: integracja z Überzug++ i Chafa, wspierane niemal wszystkie terminale.
- 🌟 Wbudowane podświetlanie kodu i dekodowanie obrazów: w połączeniu z mechanizmem wstępnego ładowania znacznie przyspiesza ładowanie obrazów i zwykłych plików.
- 🔌 Równoległy system pluginów: wtyczki UI, wtyczki funkcyjne, niestandardowe podglądy/ładowarki itp.
- 📦 Menedżer pakietów: instalacja wtyczek i motywów jednym poleceniem, utrzymywanie ich w aktualności lub przypinanie do określonej wersji.
- 🧰 Integracja z ripgrep, fd, fzf, zoxide.
- 💫 Wprowadzanie/wybór/potwierdzenie w stylu Vim, automatyczne uzupełnianie ścieżek.
- 🏷️ Wsparcie dla wielu zakładek, wybór między katalogami, przewijalny podgląd (dla wideo, plików PDF, archiwów, kodu, katalogów itp.).
- 🔄 Masowe zmienianie nazw, tryb wizualny, narzędzie do wyboru plików, integracja z Gitem, menedżer montowania.
- 🎨 System motywów, wsparcie dla myszy, kosz, użytkownik-preferencje i wiele więcej.
Nowe wersje i funkcje Yazi są często wydawane, oto podsumowanie głównych zmian w ostatnich wersjach:
- nowa wtyczka montowania;
- uproszczenia w poleceniach shell i plugin;
- zmiany w trybie vim;
- ulepszenia w menedżerze wtyczek.
Źródło: linux.org.ru
