quvyta
Dil: Türkçe

quvyta-framework

qframe

Terminal uygulamaları için bir Rust framework'ü. Çalışma zamanını, bir bileşen takımını, tema, ikon ve dil dosyalarını verir; tek bir görsel kuralla: şekli renk verir, köşeli parantez ya da çerçeve karakterleri değil.

cargo add quvyta-framework
25 saniyede vitrin, kendi test ajanıyle kaydedildi: canlı gösterge panosu örneği Nordic, Amber ve Monochrome temalarından geçiyor, sonra komut paleti Sekmeler sayfasını açıyor ve canlı demosundan koduna geçiyor.

En küçük uygulama

Veri, onu çizen bir görünüm, onu değiştiren bir güncelleme.

Çalışma zamanı tuşları ve tıklamaları mesaja çevirir ve yalnızca bir şey değiştiğinde yeniden çizer. Paketin adı quvyta-framework, kütüphanesinin adı qframe; kod onu use qframe::prelude::*; diye alır.

Aynı uygulama hiç terminal olmadan bir test ajanınde çalışır: tuşa bas, tıkla, ekranı metin olarak geri oku.

İnsanın gördüğü metin dil dosyalarında durur ve t!("key") ile okunur; örnek kısa kalsın diye düz metin kullanıyor. Rust 1.95 ya da sonrası.

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);
    }
}

// Testler aynı uygulamayı terminal olmadan sürer.
let mut app = Harness::new(Counter::default(), 30, 4);
app.press("tab").press("enter");
assert!(app.screen().contains("Count: 1"));

Yanında ne geliyor

Özenli bir terminal uygulamasının ihtiyacı olan her şey.

  • Bileşenler

    Butonlar, listeler, ağaçlar, tablolar, sekmeler, formlar ve sihirbazlar, tarih, saat ve süre alanları, dosya ve klasör seçiciler, menüler, bildirimler, ipuçları, komut paleti, grafikler, Markdown, kod ve günlük görünümleri ve bir terminal.

  • Temalar

    Iris, Nordic, Amber ve Monochrome. Her renk temadan gelir; böylece bütün bir uygulama tek bir ayarla değişir.

  • Üç modda ikonlar

    Nerd Font, düz Unicode ve ASCII. Her glif her modda tam olarak bir hücredir.

  • Dokuz dil

    Her bileşen için İngilizce, Türkçe, Almanca, İspanyolca, Fransızca, Brezilya Portekizcesi, Rusça, Basitleştirilmiş Çince ve Japonca; uygulamanın kelimeleri de onların yanında durur.

  • Klavye ve fare

    Her denetim ikisine de karşılık verir, aynı ton merdiveniyle: dinlenme, üzerine gelme, odak, basılı.

  • Fısıldayan hareket

    Süreler temadan gelir ve hareketi azaltma tercihine her yerde uyulur.

Dört tema

Aynı ekran, dört temada.

Her renk temadan gelir; bütün bir uygulama tek bir ayarla değişir. Aşağıdan birini seç, aynı gösterge panosu onun renklerini alsın; değiştirici dört radyo düğmesidir, betik yoktur.

Tema
Vitrin Iris temasında, aynı gösterge panosunda: bir CPU eğrisi, kaynak göstergeleri, her servis için bir çubuk, durum etiketleri ve büyük bir saat
Iris: ailenin kendi renkleri, bu sitenin de.
Vitrin Nordic temasında, aynı gösterge panosunda: bir CPU eğrisi, kaynak göstergeleri, her servis için bir çubuk, durum etiketleri ve büyük bir saat
Nordic: serin maviler.
Vitrin Amber temasında, aynı gösterge panosunda: bir CPU eğrisi, kaynak göstergeleri, her servis için bir çubuk, durum etiketleri ve büyük bir saat
Amber: baştan sona sıcak tonlar.
Vitrin Monochrome temasında, aynı gösterge panosunda: bir CPU eğrisi, kaynak göstergeleri, her servis için bir çubuk, durum etiketleri ve büyük bir saat
Monochrome: baştan sona griler, renk yalnızca durum için.

Vitrin

Her bileşen için bir sayfa.

Vitrini kur ve qframe komutunu çalıştır: her bileşenin canlı bir demosu, kodu, bir kılavuzu ve bir başvurusu var. Bu sayfadaki her görsel onun test ekranlarından biri, terminal olmadan çizilmiş.

cargo install quvyta-framework-showcase && qframe

Belgeler

Daha fazlası nerede okunur.