Byla vydána nová verze knihovny notcurses v1.4.x „sága pokračuje! Wu Tang! Wu Tang!"
Notcurses je TUI knihovna pro moderní terminálové emulátory. Doslovně přeloženo – ne kletby. Je napsán v C s použitím C++ bezpečných hlaviček. Obaly k dispozici pro Rez, C + + и PYTHON.
Co to je: knihovna, která zjednodušuje komplexní TUI na moderních terminálových emulátorech, maximálně podporuje jasné barvy a Unicode. Mnoho úkolů delegovaných na curses lze provádět pomocí notcurses (a naopak).
Co to není: Kompatibilní implementace X/Open curses nebo náhrada za ncurses na stávajících systémech.
Notcurses zavrhuje X/Open Curses API poskytované jako součást specifikace Single UNIX. Tato specifikace je již dávno zastaralá a například nepodporuje funkce terminálu, jako je neindexovaná 24bitová barva. Notcurses jako takové nenahrazuje kletby. Je hůře přenosný a rozhodně testován na méně hardwaru.
Kdykoli je to možné, notcurses používá knihovnu terminfo dodávanou s ncurses, což značně těží z její přenositelnosti.
Notcurses otevírá pokročilé funkce pro interakci s uživateli na pracovních stanicích, telefonech, noteboocích a tabletech.
Proč používat tuto nestandardní knihovnu?
-
Bezpečnost závitů a efektivní použití ve vícevláknových programech byly od samého počátku konstrukčním hlediskem.
-
Více dobře formátované API ve srovnání s X/Open:
-
Exportované identifikátory mají předponu, aby se předešlo kolizím jmenného prostoru.
-
Objektový soubor knihovny exportuje minimální sadu znaků. Tam, kde je to praktické, se statický kód používá pouze pro záhlaví řádků. To usnadňuje optimalizaci kompilátoru a snižuje dobu načítání.
-
-
Všechna rozhraní API nativně podporují univerzální znakovou sadu (Unicode). Buněčné API je založeno na konceptu Unicode rozšířený klastr grafémů.
-
Vizuální funkce včetně obrázků, písem, videí, vysoce kontrastního textu, spritů a průhledných oblastí. Všechna rozhraní API nativně podporují 24bitové barvy, kvantované podle potřeby terminálu.
-
Na rozdíl od licence Apache2 drama v několika zákonech, což je licence ncurses (druhá je shrnuta jako "přeformulování MIT-X11").
Od předchozí významné verze 1.1.0 bylo přidáno obrovské množství funkcí. Hlavní změny:
-
Pomůcka pro čtení pro zadávání volných řetězců spojených s řetězci čtení
-
Widget podprocesu pro vytváření podprocesu, jeho správu a zpětné streamování jeho výsledků.
-
Linux 5.3+ používá nový mechanismus clone3+pidfd ke správě procesů bez sporu.
-
Widget Fdplane pro streamování libovolného deskriptoru souboru do roviny (na které je postaven podproces). Oba umožňují zpětná volání pro styling nebo jinou manipulaci s textem.
-
Rotace rovin a vizuální efekty. Načítání vizualizací z paměti. Náhodné blikání RGBA/BGRx.
-
Nabídku lze umístit na jednu (nebo obě) z horní a spodní roviny.
-
Velká vylepšení v přímém režimu.
-
Polyfilly, přechody a vysoce kontrastní text.
-
Jako příklad přidán Tetris.
-
C++ wrappery od Marka Habersacka nyní mají možnost vyvolávat výjimky (v případě potřeby).
-
Python a Rust FFI aktualizovány a testovány.
Video demo s komentářem autora
Kniha „Hacking The Planet! s Notcourses“ od autora
Zdroj: linux.org.ru