2 points par GN⁺ 2025-11-07 | 1 commentaires | Partager sur WhatsApp
  • Collection de divers exemples d’applications en terminal (TUI) créées avec le framework Ratatui
  • Inclut des applications pour des usages variés, comme la supervision système, l’exploration de fichiers, l’analyse réseau et la visualisation de données
  • Parmi les exemples représentatifs figurent Atuin (gestion de l’historique du shell), GitUI (interface Git), Oatmeal (chat LLM) et Yazi (gestionnaire de fichiers)
  • Chaque projet est écrit en Rust et fournit un lien GitHub ainsi que des images de démonstration
  • Un ensemble d’exemples qui montre l’extensibilité et l’aspect pratique du développement d’interfaces terminal dans l’écosystème Rust

Aperçu

  • La page App Showcase de Ratatui répertorie de véritables applications à interface utilisateur en terminal (TUI) développées avec Ratatui
  • Chaque entrée se compose d’un lien vers le dépôt GitHub, d’une brève description et d’une image ou d’un GIF de démonstration
  • Plus de 27 projets y sont présentés, couvrant un large éventail allant des outils système aux jeux, en passant par l’IA et la gestion de données

Liste des principales applications

Atuin

  • Remplace l’historique shell traditionnel par une base de données SQLite et enregistre un contexte supplémentaire lors de l’exécution des commandes

Bandwhich

  • Utilitaire CLI affichant l’utilisation réseau par processus, connexion et IP/hôte distant

Binsider

  • Outil permettant d’effectuer de l’analyse binaire dans le terminal

Bottom

  • Moniteur système multiplateforme visualisant l’utilisation des ressources comme le CPU et la mémoire

Crossword

  • Jeu permettant de jouer à des mots croisés dans le terminal

Csvlens

  • Visionneuse dédiée aux fichiers CSV, comparable à la commande less, mais optimisée pour la structure CSV

Dua

  • Outil d’analyse de l’espace disque basé sur le traitement parallèle, avec fonction de suppression rapide

Fzf-make

  • Outil CLI qui exécute des cibles make à l’aide d’un fuzzy finder

GitUI

  • Interface TUI en Rust pour les opérations Git

Gpg-tui

  • Interface terminal pour GnuPG

Joshuto

  • Gestionnaire de fichiers de style Ranger, écrit en Rust

Material

  • Palette de couleurs Material Design pour le terminal

Minesweep-rs

  • Jeu de démineur écrit en Rust

Oatmeal

  • Application de chat en terminal pour dialoguer avec des LLM, prenant en charge les backends ChatGPT ou Ollama
    • Inclut des commandes slash, une interface à bulles de chat et l’intégration avec Neovim

Oha

  • Envoie de la charge à des applications web et affiche les résultats dans une TUI en temps réel

Oxker

  • TUI pour contrôler et superviser des conteneurs Docker

OpenAPI-tui

  • Outil pour consulter rapidement de la documentation OpenAPI dans le terminal

Rainfrog

  • Outil terminal léger pour interagir avec des bases de données

Rucola

  • Offre des fonctions de gestion de notes Markdown et de conversion HTML

Scope-tui

  • Implémente dans le terminal des fonctions d’oscilloscope, vectorscope et spectroscope

Slumber

  • Exécute un client HTTP/REST dans le terminal

Steer

  • Agent de codage IA pour le développement local et l’automatisation

Taskwarrior-tui

  • Interface terminal de l’outil de gestion de tâches Taskwarrior

Television

  • Outil de recherche basé sur des algorithmes de fuzzy matching, prenant en charge l’exploration de diverses sources de données comme les fichiers, Git et les variables d’environnement

Trippy

  • Outil de diagnostic réseau combinant les fonctions de traceroute et de ping

Xplr

  • Explorateur de fichiers TUI rapide et hackable

Yazi

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

Yozefu

  • TUI interactive pour explorer les données de clusters Kafka
    • Prend en charge un filtrage fin grâce à un langage de requête proche du SQL
    • Alternative à AKHQ, Redpanda Console et au plugin Kafka de JetBrains

Importance de l’écosystème Ratatui

  • Toutes les applications reposent sur le framework Ratatui, montrant la diversité et la maturité du développement d’interfaces terminal dans l’environnement Rust
  • Chaque projet est publié sous la forme d’un dépôt GitHub open source, que les développeurs peuvent consulter directement
  • Cela suggère que Ratatui s’impose comme l’outil de référence pour le développement CLI/TUI en Rust

1 commentaires

 
GN⁺ 2025-11-07
Commentaires sur Hacker News
  • Je trouve intéressant qu’il y ait autant de TUI écrites en Rust ces temps-ci
    Parmi celles que je connais, il y a Awesome TUIs, terminaltrove et la liste awesome de Ratatui

    • En ce moment, il n’existe presque plus de bonnes plateformes GUI desktop, donc le terminal devient au contraire un environnement plus attractif
      Qt et GTK sont trop lourds, Windows change souvent, et je n’ai pas envie de toucher à Electron
      La qualité des terminaux s’est beaucoup améliorée récemment, donc il est bien plus simple d’y créer de petites applications
      L’analogie est parfaite : construire quelque chose de chouette en LEGO est plus facile que sculpter de l’argile
    • Les bibliothèques TUI abstraient bien la complexité bas niveau du rendu terminal, au point que le terminal donne maintenant l’impression d’être une toile dans l’IDE
      Plus besoin de construire tout un pipeline de rendu navigateur pour visualiser l’état des données
      À titre de référence, il y a cette image d’exemple
    • Les TUI sont en grande partie cross-platform, et comme elles s’utilisent directement dans le terminal, il y a moins de changement de contexte
      Les terminaux modernes comme Ghostty, WezTerm, Kitty, iTerm et Alacritty prennent en charge l’accélération GPU et la couleur 24 bits
      Et en plus, les développeurs utilisent aujourd’hui davantage des outils comme Claude Code, Gemini CLI et Codex dans le terminal que dans l’IDE
    • Pour les développeurs qui ont longtemps subi de mauvaises interfaces web, les TUI sont une alternative rafraîchissante
      Elles ont beaucoup de contraintes, mais c’est justement ce qui rend plus difficile la création d’interfaces désordonnées
      Elles conviennent très bien aux logiciels de complexité simple à moyenne. Je recommande par exemple Midnight Commander
    • Pour moi, les TUI sont une échappatoire au monde actuel des GUI surdesignées
      La collaboration avec les designers me paraît de plus en plus bureaucratique et inefficace
      Les TUI imposent des interfaces propres, à forte densité d’information et avec peu d’espace inutile
  • Si les TUI sont à la mode en Rust, c’est surtout parce que la situation des GUI est trop mauvaise
    On peut s’en rendre compte en lisant ce sondage sur les bibliothèques GUI Rust
    J’aimerais utiliser Qt avec Rust, mais je ne veux ni QML, ni Slint, ni GTK, ni les UI en mode immédiat
    Ce serait vraiment dommage qu’il n’apparaisse rien d’équivalent à Qt dans l’écosystème Rust

    • En réalité, ceux qui créent des TUI en Rust le font simplement parce qu’ils aiment les TUI
      Ratatui est un framework tellement agréable à utiliser que cela n’a rien à voir avec l’absence de GUI
    • Les GUI impliquent, dans n’importe quel langage, une lourde charge autour des tests, de l’accessibilité et de l’i18n
      Quand la CLI ne suffit pas mais qu’une GUI complète serait excessive, la TUI occupe très bien cette position intermédiaire
    • Si les frameworks GUI traditionnels sont difficiles en Rust, c’est à cause des structures à références circulaires
      Les références parent/enfant entre fenêtre, conteneur et bouton entrent en conflit avec le modèle de propriété de Rust
      Le mécanisme signal-slot de Qt est lui aussi délicat à implémenter en Rust
    • Moi aussi, j’ai l’impression que l’écosystème GUI de Rust est en difficulté
      La plupart des crates dont j’avais besoin étaient soit WIP, soit à l’abandon
      En dehors de quelques grosses crates populaires, la documentation se résume souvent à « voir la doc C++ »
      C’est en partie parce que Rust est encore un langage jeune, mais le vrai problème me semble être le manque d’engagement sur la maintenance des packages dans la communauté
    • À noter que Zed est un éditeur GUI écrit en Rust
      En revanche, je ne sais pas avec certitude si la partie GUI est implémentée uniquement en Rust
  • J’attends un navigateur web TUI qui me permettrait de vivre entièrement dans le terminal
    Avec des technologies comme sixel ou les shaders, il devrait être possible de gérer les graphismes aussi, hors vidéo
    Le blocage des publicités serait peut-être trop facile pour plaire aux entreprises, mais en le présentant comme un navigateur pour LLM, ça pourrait peut-être passer

    • Mais je ne vois pas vraiment pourquoi il faudrait faire ça
      Le terminal reste un tampon de caractères basse résolution, alors qu’un rendu en pixels accéléré par GPU est tout simplement bien plus efficace
    • Il existe un projet appelé Browsh
      Il fait tourner Firefox en mode headless et affiche le résultat en ASCII dans le terminal. C’est assez impressionnant
    • J’utilise souvent Chawan. C’est plutôt bien
    • En réalité, c’était déjà possible depuis les années 90
      Lynx et w3m en sont des exemples représentatifs
    • Ce n’est pas en Rust, mais nimwave mérite aussi un coup d’œil
  • Je présente mon visualiseur Markdown mdfried
    Le Markdown brut est agréable à lire, mais l’affichage dans un navigateur est plus confortable, donc j’ai créé un visualiseur qui rend les en-têtes sous forme d’images
    Il faut configurer la police une fois, et les images inline sont aussi prises en charge
    Désormais, il peut même faire le rendu directement sans conversion en image grâce au protocole text-sizing de Kitty

    • Projet vraiment très sympa. En revanche, Ghostty ne semble pas encore implémenter ce protocole
  • Le Teletekst néerlandais propose une interface SSH
    D’après cet article, elle a été réalisée avec Ratatui, et on peut s’y connecter via ssh teletekst.nl

  • J’ai testé une petite application faite avec Ratatui, et j’ai été surpris de voir l’utilisation CPU monter jusqu’à 8 % avec une simple saisie de texte
    C’était le cas même en reprenant tel quel l’exemple officiel

    • Quelqu’un demande si ce n’était pas lancé en build debug. cargo run utilise le mode debug par défaut
  • J’aimerais intégrer mon projet open source TironCalc dans le dépôt principal ironcalc
    Je pense que c’est un bon projet pour travailler avec Rust et Ratatui
    Mais après avoir vu le projet edit de Microsoft, je ne suis plus certain que Ratatui soit le meilleur choix

  • Je présente mon jeu TUI basé sur Ratatui rebels-in-the-sky

    • J’ai lancé le jeu et je l’aime vraiment beaucoup. Il a un côté vieux simulateur de football comme Hattrick, avec une sensibilité plus moderne
      En revanche, la vidéo du dépôt ne s’ouvre pas sur mon appareil
    • L’illustration est superbe. Sur GitHub, la vidéo ne se rendait pas, j’ai donc dû télécharger directement le mp4
    • La description « jeu P2P de basket-ball de pirates de l’espace à l’échelle de la galaxie » est vraiment marquante
  • Je trouve que le titre du post était un peu étrange
    Je pensais lire un article sur la révolution des TUI en Rust, alors qu’il s’agissait en fait d’une collection d’applications créées avec Ratatui

    • En fait, cela voulait probablement dire que cette crate est elle-même à l’origine du boom des TUI en Rust
      Charm joue un rôle similaire dans l’écosystème Go
    • Le titre a été modifié. Selon les règles de HN, on garde normalement le titre d’origine, sauf s’il induit en erreur
    • Ratatui est un projet assez ancien, et c’est le premier outil vers lequel je me tourne quand je veux créer une TUI complexe
    • Moi aussi, ça me donne envie d’explorer d’autres alternatives ou de voir ce qui les différencie
  • J’ai le sentiment qu’on a de plus en plus besoin d’utilitaires permettant d’exécuter des agents en CLI par dossier dans le terminal
    Par exemple, cela pourrait servir à automatiser des vérifications de conformité juridique

    • Les principaux agents de code proposent déjà un mode CLI
      Cline CLI, Opencode CLI, Codex CLI, Gemini CLI, Claude Code CLI, etc.