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

