Vyšla nová verzia knižnice notcurses v1.4.x „poviedka pokračuje! wu-tang! wu-tang!“
Notcurses je TUI knižnica pre moderné terminálové emulátory. Doslovne preložené – nie kliatby (not curses). Je napísaná v C, s použitím C++-safe hlavičiek. K dispozícii sú obaly pre Rust, C++ a Python.
Čo to je: knižnica, ktorá zjednodušuje zložité TUI na moderných terminálových emulátoroch, maximálne podporujúca živé farby a Unicode. Mnohé úlohy delegované curses môžu byť vykonané pomocou notcurses (a naopak).
Čím to nie je: kompatibilná implementácia X/Open curses alebo náhrada ncurses na existujúcich systémoch.
Notcurses sa vzdáva API X/Open Curses, dodávaného ako súčasť Single UNIX Specification. Táto špecifikácia je už dávno zastaraná a napríklad nepodporuje takú funkcionalitu terminálu, ako neindexovaná 24-bitová farba. Ako taká, notcurses nie je náhradou za curses. Je menej prenosná a určite bola testovaná na menšom počte zariadení.
Kedykoľvek je to možné, notcurses využíva knižnicu terminfo, dodávanú spolu s ncurses, čím ťaží z jej prenosnosti.
Notcurses otvára rozšírené funkčnosti pre interakciu s používateľmi na pracovných staniciach, telefónoch, notebookoch a tabletoch.
Prečo použiť túto nestandardnú knižnicu?
Bezpečnosť vlákien a efektívne využívanie v viacvláknových programoch boli od začiatku projektovým zreteľom.
Lepšie navrhnuté API v porovnaní s X/Open:
Exportované identifikátory majú prefix, aby sa predišlo kolíziám v menových priestoroch.
Objektový súbor knižnice exportuje minimálny súbor symbolov. Kde je to vhodné, využíva sa statický kód len pre drobné hlavičky. To uľahčuje optimalizáciu kompilátora a skracuje čas načítania.
-
Všetky API od začiatku podporujú univerzálnu sadu symbolov (Unicode). API pre bunky je založené na koncepte Rozšírený klaster znakov Unicode.
Vizualizačné schopnosti, vrátane obrázkov, písiem, videa, textu s vysokým kontrastom, sprite a priehľadných oblastí. Všetky API nativne podporujú 24-bitovú farbu, kvantovanú podľa potreby pre terminál.
-
Licencia Apache2, na rozdiel od drámy v niekoľkých aktívach, ktorá je licenciou ncurses (posledná sa sumarizuje ako „preformulovanie MIT-X11“).
Od predchádzajúceho významného vydania 1.1.0 bolo pridané obrovské množstvo funkcií. Hlavné zmeny:
Widget na čítanie pre vstup reťazcov ľubovoľného formátu s pripojením na reťazce na čítanie
Widget subprocess na generovanie podprocesu, jeho ovládanie a prenos jeho výsledkov späť.
V Linuxe 5.3+ sa používa nový mechanizmus clone3+pidfd na správu procesov bez race condition.
Widget Fdplane na streaming ľubovoľného súborového popisu na rovinu (na ktorej je postavený podproces). Obe umožňujú spätným volaniam štýlovo alebo inak spracovávať text.
Otáčanie rovín a vizuálne efekty. Načítanie vizualizácií z pamäte. Ľubovoľné blitovanie RGBA/BGRx.
Menu možno umiestniť na ktorúkoľvek (alebo na obe) z horných a dolných rovín.
Veľké vylepšenia v režime Direct.
Polyfill, gradienty a text s vysokým kontrastom.
Pridaný Tetris ako príklad.
Obálky C++ od Mareka Habersacka získali možnosť vyhadzovať výnimky (ak je to potrebné).
Python a Rust FFI boli aktualizované a otestované.
Video demo s komentármi autora
Kniha „Hacking The Planet! with Notcurses“ od autora
Zdroj: linux.org.ru

