Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Přehled TUIX Core v0.6

Modulární terminálový UI engine pro Python poháněný kompilovaným jádrem C + Cython. v0.6 přináší 13 modulárních Python balíčků zrcadlících nativní C složky (`core`, `scene`, `object`, `buffer`, `content_builder`, `command_buffer`, `compositor`, `event`, `input`, `renderer`, `sub_cycles`, `tuix`, `viewport`), odstraňuje ploché legacy moduly, zavádí namespaced registraci builderů, rozšiřuje základy pro Unicode a grafémové clustery, sjednocuje návratové kódy TUIX_RC_* a poskytuje vláknově bezpečný bridge pro události a command buffery.

Verze 0.6 sjednocuje pojmenování nativního C API do konzistentního formátu `tuix_system_action`, zpevňuje vlastnictví bufferů a sledování životního cyklu, zlepšuje stabilitu diffu při renderování a poskytuje čisté modulární Python subbalíčky.

Core vs frameworkTUIX Core záměrně poskytuje nízkoúrovňová primitiva, přímou správu bufferů a nativní řízení renderování. Pokud používáte vyšší UI framework postavený nad TUIX Core, můžete s jeho abstrakcemi pracovat přímo; náš oficiální vysokoúrovňový framework je v současnosti v aktivním vývoji.

Architektura

Runtime je rozdělen do tří vrstev: nativní C engine pro buffery, vnořený layout, hitmapy, kompozici, diffing, internování symbolů a terminálový výstup; Cython bridge pro rychlá volání bindingů a vykonávání snímků; a modulární Python balíčky pro životní cyklus scén, tvorbu objektů, konfiguraci widgetů, snapshoty a řízení aplikace.

Každý snímek směruje vstup, vyřeší geometrii napříč parent/child stromy, nechá buildry aktualizovat stav a obsah, složí viditelné buffery a do stdout zapisuje jen rozdíly viditelné v terminálu.

Vestavěné typy widgetů

WidgetKonstanta / Název builderuPopis
ProgressbarPROGRESS_BAR (ProgressBarBuilder)Vodorovný ukazatel průběhu s nastavitelnou hodnotou, znaky výplně/prázdna, barvami a volitelným procentem.
ChoiceCHOICE (ChoiceBuilder)Seznam voleb ovladatelný klávesnicí se stavem potvrzení a výběru.
InputINPUT (InputBuilder)Jednořádkový textový vstup s placeholderem, pohybem kurzoru, plnou podporou UTF-8 kódových bodů a stavem odeslání.
CanvasCANVAS (CanvasBuilder)Volná kreslicí plocha pro pixely, primitiva (čáry, obdélníky, kruhy), text citlivý na grafémy, raw buffery a cachované sprity.
TextTEXT (TextBuilder)Vložený text s iterací po grafémových clusterech a runtime řízením barvy popředí a pozadí.
ClickableTextCLICKABLE_TEXT (ClickableTextBuilder)Klikatelný inline textový štítek s barvami popředí/pozadí a spotřebovatelným stavem stisku.
BoxBOX (BoxBuilder)Rámovaný kontejner s titulkem, okrajem a barvami pozadí.
DividerDIVIDER (DividerBuilder)Vodorovný nebo svislý oddělovač s vlastním symbolem a barvou.
BadgeBADGE (BadgeBuilder)Kompaktní štítek s paletou popředí/pozadí.
ButtonBUTTON (ButtonBuilder)Klikatelné a klávesnicí aktivovatelné tlačítko se spotřebovatelným stavem stisku.
TagTAG (TagBuilder)Štítek typu chip s nastavitelnými závorkami a barvami.
StatusSTATUS (StatusBuilder)Stavový štítek IDLE/OK/WARN/ERROR s nastavitelnou paletou a bezpečným vykreslováním UTF-8.
MenuMENU (MenuBuilder)Interaktivní menu s titulkem, výběrem položek a stavem aktivace.
ScrollContainerSCROLL_CONTAINER (ScrollContainerBuilder)Kontejner založený na viewportu s virtuální velikostí obsahu, offsety, ořezem a helpery pro připojení dětí.
RowROW (RowBuilder)Vodorovný stack layout parent s gapem, paddingem, justify, align a sloty dětí.
ColumnCOLUMN (ColumnBuilder)Svislý stack layout parent používající stejné stack API jako Row.
SplitPaneSPLIT_PANE (SplitPaneBuilder)Dvou-panelový layout s orientací, rozdělením poměrem/pixely, velikostí dělítka a minimy panelů.
GridGRID (GridBuilder)Grid layout s pevnými a váženými řádky/sloupci, gapy, paddingem a override umístění.
CheckboxCHECKBOX (CheckboxBuilder)Přepínač s popiskem, checked/disabled stavem a spotřebovatelným příznakem změny.
ListViewLIST_VIEW (ListViewBuilder)Virtuální seznam nad viewportem s výběrem, aktivací a scrollováním kolečkem.
TextAreaTEXT_AREA (TextAreaBuilder)Víceřádkový editor nad viewportem s titulkem, placeholderem, navigací kurzoru, editací grafémů a read-only režimem.
DialogDIALOG (DialogBuilder)Modální dialog s backdropem, zachycením fokusu, velikostí těla, paddingem, barvami a zavíráním.

Mapa modulů (13 balíčků)

ModulÚčel
tuix.core.coreŽivotní cyklus systému (`init`, `shutdown`, `main_loop`, `lock`), statistiky snímků, zachycení myši a registry proxy.
tuix.core.sceneAlokace a výběr scén, routování fokusu, modální překryvy, transakce, statistiky aktivity a kompaktace pixelů.
tuix.core.objectŽivotní cyklus objektů (`create_object`, `get_object_by_uid`), runtime API widgetů a inspekce snapshotů.
tuix.core.bufferHierarchie bufferů, z-index řazení, layout sloty, grid placement, explicitní obdélníky layoutu a metriky obrazovky.
tuix.core.content_builderRegistr standardních builderů, konstanty builderů, layout/grid konstanty, `register_standard()` a `unregister_builder()`.
tuix.core.inputVlákno nativního listeneru vstupu (`listen`, `stop`), spotřebovávající (`get_snapshot`) a nahlížející (`peek_snapshot`) snapshoty a injektování kláves.
tuix.core.command_bufferOpkódy pro dávkové vykonávání příkazů a transakční commity na hranici snímku.
tuix.core.compositorKompozice scény, cachování traversal řetězce, partial kompozice citlivá na paint-mask, dirty stav hitmapy a řešení geometrie.
tuix.core.eventVláknově bezpečné řízení fronty událostí a bridge pro dispečink Python callbacků.
tuix.core.rendererStreamovací ANSI renderer, alokace nativních bufferů, patch rendering, sledování dirty řádků a statistiky výkonu snímků.
tuix.core.sub_cyclesAlokace registru sub-cyclů, řízení životního cyklu a transakční obsluha OOM.
tuix.core.tuixRuntime konfigurace terminálu, probing politiky, internování symbolů a metadata pixelových buněk.
tuix.core.viewportDotazování na viewport schopnosti, výpočet offsetů obsahu a scroll insets.

Co je nového ve 0.6

  • Breaking nativní API cleanup: sjednocené názvy C funkcí a hlaviček do formátu `tuix_system_action` napříč všemi moduly.
  • 13 modulárních Python balíčků zrcadlících nativní C strom (`core`, `scene`, `object`, `buffer`, `content_builder`, `command_buffer`, `compositor`, `event`, `input`, `renderer`, `sub_cycles`, `tuix`, `viewport`) s odstraněním plochých legacy root modulů.
  • Namespaced registr builderů: vestavěné buildery žijí v namespace `tuix`, deskriptory deklarují metadata ABI verze, velikosti struktur a politiky vlastnictví pixelů a runtime záznamy sledují generaci i živé instance.
  • Sdílený systém návratových kódů `TUIX_RC_*` nahrazující nejednoznačné status kódy napříč veřejnými core, scene, buffer, layout a builder API.
  • Vláknově bezpečný event shim a bridge pro command buffer pro commity na hranici snímků a flush událostí z C do runtime.
  • Základ pro Unicode: internované neměnné UTF-8 symboly pixelů, 128bajtový payload klávesnice, měření a vykreslování textu podle grafémových clusterů a bezpečné wide znaky řízené terminal policy.
  • Nový widget ClickableTextBuilder a aktualizované kanonické konstanty builderů (`PROGRESS_BAR`, `SPLIT_PANE`, `LIST_VIEW`, `TEXT_AREA`, `CLICKABLE_TEXT`).
  • Robustnost jádra: partial kompozice citlivá na paint-mask, sledování redraw generation, transakční registrace sub-cyclů při OOM, invalidace starých ukazatelů při destrukci scén a NULL-safety kontroly jmen.

Známá omezení

  • TUIX Core zůstává nízkoúrovňový engine, ne vysokoúrovňový aplikační framework.
  • Chybí vestavěný systém témat/stylů nad rámec stylování jednotlivých widgetů.
  • Hlavní smyčka je synchronní; integrace s async smyčkou není vestavěná.