Vyšla notcurses v1.4.1 – knižnica pre moderné textové rozhrania


Vyšla notcurses v1.4.1 – knižnica pre moderné textové rozhrania

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

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster