Vyšla notcurses v1.4.1 — knihovna pro moderní textové rozhraní


Vyšla notcurses v1.4.1 — knihovna pro moderní textové rozhraní

Byla vydána nová verze knihovny notcurses v1.4.x „sága pokračuje! wu-tang! wu-tang!“

Notcurses je knihovna TUI pro moderní terminálové emulátory. Překládá se doslovně jako – žádné proklínání (not curses). Byla napsána v C a využívá hlavičky bezpečné pro C++. K dispozici jsou obálky pro Rust, C++ a CouchDB.

Co to je: knihovna, která usnadňuje složité TUI na moderních terminálových emulátorech, maximálně podporující jasné barvy a Unicode. Mnoho úloh, které dříve splnily curses, může nyní vykonávat notcurses (a naopak).

Čím to není: kompatibilní implementací X/Open curses nebo náhradou za ncurses na stávajících systémech.

Notcurses se vzdává API X/Open Curses dodávaného jako součást Single UNIX Specification. Tato specifikace je již dávno zastaralá a například nepodporuje funkce terminálu, jako je neindexovaná 24-bitová barva. Notcurses tedy není náhradou za curses. Je méně přenositelná a určitě byla testována na menším množství zařízení.
Kde je to možné, notcurses využívá knihovnu terminfo dodávanou s ncurses, čímž vytěžuje její přenositelnost.
Notcurses otevírá rozšířené možnosti interakce s uživateli na pracovních stanicích, telefonech, noteboocích a tabletech.

Proč používat tuto nestandardní knihovnu?

  • Bezpečnost vláken a efektivní využití ve vícethreadovaných programech byla od samého začátku projektovým záměrem.

  • Lépe navržené API ve srovnání s X/Open:

    • Exportované identifikátory mají prefix, aby se zabránilo kolizím v prostorách názvů.

    • Objektový soubor knihovny exportuje minimální sadu symbolů. Kde je to vhodné, používá se statický kód pouze pro drobné hlavičky. To usnadňuje optimalizaci kompilátoru a zkracuje čas načítání.

  • Všechna API od začátku podporují univerzální sadu znaků (Unicode). API pro buňky je založeno na koncepci Rozšířeného shlukování graphemů Unicode.

  • Vizuální možnosti, včetně obrázků, písem, videí, vysoce kontrastního textu, sprite a průhledných oblastí. Všechna API nativně podporují 24-bitové barvy, kvantované podle potřeby pro terminál.

  • Licence Apache2, na rozdíl od drámy v několika aktech, která je licencí ncurses (ta je shrnuta jako 'přeformulování MIT-X11').

Od předchozího významného vydání 1.1.0 bylo přidáno ohromné množství funkcí. Hlavní změny:

  • Widget pro čtení pro zadávání řetězců libovolné formy s vazbou na čtené řetězce.

  • Widget subprocess pro vytváření podprocesu, jeho správu a streamování jeho výsledků zpět.

  • V Linuxu 5.3+ se používá nový mechanismus clone3+pidfd pro správu procesů bez závodních podmínek.

  • Widget Fdplane pro streamování libovolného souborového deskriptoru na plochu (na které je spuštěn podproces). Oba umožňují zpětným voláním stylizovat nebo jinak zpracovávat text.

  • Otáčení ploch a vizuální efekty. Načítání vizualizací z paměti. Libovolné blitování RGBA/BGRx.

  • Menu může být umístěno na libovolné (nebo na obě) z horních a dolních ploch.

  • Velké vylepšení v režimu Direct.

  • Polyfily, gradienty a text s vysokým kontrastem.

  • Přidán Tetris jako příklad.

  • C++ obálky od Mareka Habersacka získaly možnost vyhazovat výjimky (pokud je to potřeba).

  • Python a Rust FFI byly aktualizovány a otestovány.

Video demo s komentáři autora.
Kniha „Hacking The Planet! with Notcurses“ od autora.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster