quvyta
Langue: Français

quvyta-framework

qframe

Un framework Rust pour les applications de terminal. Il vous donne le runtime, un jeu de composants et des fichiers de thème, d’icônes et de langue, avec une seule règle visuelle : la forme vient de la couleur, jamais des crochets ni des caractères de cadre.

cargo add quvyta-framework
La vitrine en 25 secondes, enregistrée par ses propres tests : l’exemple de tableau de bord en marche traverse les thèmes Nordic, Amber et Monochrome, puis la palette de commandes ouvre la page des onglets et passe de la démo en direct à son code.

Une application minimale

Des données, une vue qui les dessine, une mise à jour qui les change.

Le runtime transforme les touches et les clics en messages et ne redessine que si quelque chose a changé. Le paquet s’appelle quvyta-framework et sa bibliothèque qframe ; le code l’importe donc avec use qframe::prelude::*;.

La même application tourne dans les tests sans aucun terminal : appuyez sur des touches, cliquez, et relisez l’écran sous forme de texte.

Le texte que les gens voient appartient aux fichiers de langue et se lit avec t!("key") ; l’exemple garde des chaînes simples pour rester court. Rust 1.95 ou plus récent.

use qframe::prelude::*;

#[derive(Default)]
struct Counter {
    count: i32,
}

#[derive(Clone)]
enum Msg {
    Increment,
}

impl App for Counter {
    type Msg = Msg;

    fn update(&mut self, msg: Msg) -> Command<Msg> {
        match msg {
            Msg::Increment => self.count += 1,
        }
        Command::none()
    }

    fn view(&self, ui: &mut View<'_, Msg>) {
        ui.column(|ui| {
            ui.add(Text::new(format!("Count: {}", self.count)));
            ui.add(Button::new("Add one").variant("primary").on_press(Msg::Increment));
        })
        .gap(1);
    }
}

// Les tests conduisent la même application sans terminal.
let mut app = Harness::new(Counter::default(), 30, 4);
app.press("tab").press("enter");
assert!(app.screen().contains("Count: 1"));

Ce qui vient avec

Tout ce qu’il faut à une application de terminal soignée.

  • Composants

    Boutons, listes, arbres, tableaux, onglets, formulaires et assistants, champs de date, d’heure et de durée, sélecteurs de fichier et de dossier, menus, notifications, infobulles, une palette de commandes, des graphiques, des vues Markdown, code et journal, et un terminal.

  • Thèmes

    Iris, Nordic, Amber et Monochrome. Chaque couleur vient du thème, donc toute une application change avec un seul réglage.

  • Icônes en trois modes

    Nerd Font, Unicode simple et ASCII. Chaque glyphe tient dans exactement une cellule, dans tous les modes.

  • Neuf langues

    Anglais, turc, allemand, espagnol, français, portugais du Brésil, russe, chinois simplifié et japonais, pour chaque composant ; les mots de votre application vivent à côté.

  • Clavier et souris

    Chaque contrôle répond aux deux, avec la même échelle de tons : au repos, survolé, avec le focus, enfoncé.

  • Un mouvement qui murmure

    Les durées viennent du thème, et la préférence pour moins de mouvement est respectée partout.

Quatre thèmes

Le même écran, en quatre thèmes.

Chaque couleur vient du thème, donc toute une application change avec un seul réglage. Choisissez-en un ci-dessous et le même tableau de bord prend ses couleurs ; le sélecteur, ce sont quatre boutons radio, sans le moindre script.

Thème
La vitrine avec le thème Iris, sur le même tableau de bord : une courbe de CPU, des jauges de ressources, une barre par service, des badges d’état et une grande horloge
Iris : les couleurs de la famille, et celles de ce site.
La vitrine avec le thème Nordic, sur le même tableau de bord : une courbe de CPU, des jauges de ressources, une barre par service, des badges d’état et une grande horloge
Nordic : des bleus froids.
La vitrine avec le thème Amber, sur le même tableau de bord : une courbe de CPU, des jauges de ressources, une barre par service, des badges d’état et une grande horloge
Amber : des tons chauds partout.
La vitrine avec le thème Monochrome, sur le même tableau de bord : une courbe de CPU, des jauges de ressources, une barre par service, des badges d’état et une grande horloge
Monochrome : des gris partout, la couleur gardée pour l’état seul.

La vitrine

Une page pour chaque composant.

Installez la vitrine et lancez qframe : chaque composant a une démo en direct, son code, un guide et une référence. Chaque image de cette page est l’un de ses écrans de test, dessiné sans terminal.

cargo install quvyta-framework-showcase && qframe

Documentation

Où lire la suite.