Outil CLI
sxyazi/yazi avatar
sxyazi/yazi

Yazi, un gestionnaire de fichiers en terminal écrit en Rust

💥 Gestionnaire de fichiers de terminal ultra-rapide écrit en Rust, basé sur des E/S asynchrones.

42 202 étoiles1 018 forksRustMIT

En bref

De quoi s’agit-il ?
Un examen des E/S asynchrones, des aperçus d'images, du système de plugins et de l'état du projet Yazi, à partir du README et de la licence.
À qui s’adresse-t-il ?
Yazi est un gestionnaire de fichiers en terminal en phase de bêta publique, avec E/S asynchrones, aperçus d'images multi-terminal, plugins Lua et opérations intégrées. La licence MIT autorise l'utilisation et la modification sans garantie ; le README renvoie à la documentation et aux communautés.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Rust, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un gestionnaire de fichiers en terminal écrit en Rust

Yazi est un gestionnaire de fichiers en terminal écrit en Rust, basé sur des E/S asynchrones non bloquantes. Le nom signifie canard. Le README indique que le projet vise à offrir une gestion de fichiers efficace, conviviale et personnalisable. Le dépôt contient également un lien vers un article intitulé Why is Yazi Fast? qui explique le fonctionnement interne, mais cet article ne fait pas partie de ce dépôt. Le projet est en bêta publique et peut être utilisé quotidiennement, mais il est en développement actif et des changements cassants sont à prévoir. La page d'accueil du dépôt est yazi-rs.github.io et la branche par défaut est main, mais le README ne fournit aucune commande d'installation ni chiffre de benchmark ; l'installation est décrite dans la documentation. Le README contient également une bannière de sponsoring Warp et des remerciements à l'équipe RustRover pour les licences open source, mais cela n'affecte pas les fonctionnalités.

E/S asynchrones et planification des tâches

Le README insiste sur le support asynchrone complet : toutes les opérations d'E/S sont asynchrones et les tâches CPU sont réparties sur plusieurs threads pour exploiter au mieux les ressources disponibles. Il décrit également un système puissant de planification et de gestion des tâches asynchrones avec des mises à jour de progression en temps réel, l'annulation de tâches et l'attribution de priorités internes. Le gestionnaire de fichiers inclut un surlignage de code et un décodage d'images intégrés, et utilise un mécanisme de préchargement pour accélérer le chargement des images et des fichiers normaux. Ces détails montrent que la vitesse est un thème central, mais le README ne contient pas de chiffres de benchmark. La conception asynchrone concerne aussi l'annulation et la priorité des tâches, ce qui permet aux utilisateurs de voir la progression lors d'opérations longues, mais les détails d'implémentation nécessiteraient la lecture du code ou de l'article séparé. L'algorithme de planification n'est pas précisé dans le README.

Aperçu d'images selon le terminal

Le support de l'aperçu d'images dépend du terminal. Yazi prend en charge nativement plusieurs protocoles : kitty unicode repères, iTerm2 inline images, Sixel graphics et kitty old protocol. Le README liste les exigences de version spécifiques pour chaque terminal. Par exemple, kitty nécessite la version 0.28.0 ou ultérieure, Windows Terminal nécessite 1.22.10352.0 ou ultérieure et Rio nécessite 0.3.9 ou ultérieure. Sur X11 ou Wayland, Überzug++ est requis, et le repli pour les autres terminaux utilise Chafa pour générer de l'art ASCII (blocs Unicode) ; Chafa 1.16.0 ou supérieur est nécessaire. Les terminaux pris en charge incluent également WezTerm, Konsole, foot, Ghostty, st with Sixel patch, Warp, Tabby, VSCode, Black Box et Bobcat ; le tableau du README indique le statut de chacun. De plus, l'ancien protocole kitty est utilisé par des terminaux comme Konsole, tandis que les images en ligne iTerm2 sont aussi utilisées par WezTerm et Warp. Plus de détails se trouvent dans la documentation sur l'aperçu d'images liée par le README. Ces exigences de version proviennent du README et ne sont pas vérifiées ici.

Système de plugins, système de fichiers virtuel et distribution de données

Yazi comprend un système de plugins concurrent. Les plugins d'interface peuvent réécrire la majeure partie de l'interface utilisateur, et il existe des plugins fonctionnels ainsi que des previewers, preloaders, spotters et fetchers personnalisés, tous écrits sous forme de fragments Lua. Il y a aussi un système de fichiers virtuel pour la gestion de fichiers distants, des fournisseurs VFS personnalisés et des moteurs de recherche personnalisés. Un service de distribution de données repose sur une architecture client-serveur sans nécessiter de processus serveur supplémentaire, et intègre un modèle de publication-abonnement basé sur Lua pour réaliser la communication inter-instances et la persistance d'état. Un gestionnaire de paquets installe plugins et thèmes avec une commande, les maintient à jour ou les épingle à une version spécifique. Le système de plugins et le système de fichiers virtuel étendent le comportement du gestionnaire, mais le README ne fournit pas d'exemples d'écriture de plugins ni de documentation API ; il faut consulter le site de documentation. Les cas d'usage concrets du service de distribution de données ne sont pas non plus détaillés dans le README.

Outils intégrés et opérations sur les fichiers

Le README liste des intégrations avec ripgrep, fd, fzf et zoxide. Il décrit également des composants de type Vim : input, pick, confirm, which et notify, ainsi que l'auto-complétion pour les chemins cd. Le support multi-onglets et la sélection inter-répertoires sont inclus, de même que l'aperçu défilant pour vidéos, PDF, archives, code, répertoires, etc. D'autres opérations incluent le renommage et la création en masse, l'extraction d'archives, le mode visuel, un sélecteur de fichiers, l'intégration Git et un gestionnaire de montage, ces deux derniers provenant d'un dépôt de plugins séparé. Le système de thèmes, le support de la souris, le glisser-déposer, la corbeille, les mises en page personnalisées, CSI u, OSC 52 et CSI 2031 sont également mentionnés. Le README décrit chaque fonctionnalité en une phrase sans donner de raccourcis clavier ni d'exemple de configuration. Les détails de configuration des outils intégrés ne sont pas développés non plus, et le comportement réel de ces fonctionnalités devrait être testé.

État du projet, documentation et licence

Yazi est distribué sous la licence MIT, comme indiqué dans le README et le fichier de licence. La licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition que l'avis de droit d'auteur et l'avis de permission soient inclus dans toutes les copies ou portions substantielles. Le logiciel est fourni tel quel, sans garantie d'aucune sorte, et la licence n'établit aucune garantie de support ou de sécurité. Les liens de documentation mènent aux pages d'installation et de fonctionnalités, et il existe des groupes de discussion Discord et Telegram, l'un principalement en anglais et l'autre principalement en chinois. Le projet est en bêta publique et en développement actif, donc les utilisateurs doivent s'attendre à des changements cassants. Les métadonnées du dépôt affichent actuellement 41062 étoiles, 969 forks et 64 issues ouvertes, mais ces chiffres reflètent seulement l'état actuel. La clause de non-responsabilité implique que l'utilisateur assume les risques liés à l'utilisation du logiciel.

Conclusion éditoriale

Yazi est un gestionnaire de fichiers en terminal en phase de bêta publique, avec E/S asynchrones, aperçus d'images multi-terminal, plugins Lua et opérations intégrées. La licence MIT autorise l'utilisation et la modification sans garantie ; le README renvoie à la documentation et aux communautés. Pour yazi, adoptez ce projet seulement si les exigences décrites correspondent à votre contexte. Vérifiez avec les commandes, fichiers et versions cités dans le README, notamment main et la licence MIT, avant toute intégration durable.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté