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-frameworkUne 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.
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 && qframeDocumentation
Où lire la suite.
- Documentation de l’API sur docs.rs
Chaque élément public, documenté en anglais.
- Le dépôt
La bibliothèque, la vitrine et les principes de conception derrière elles.