Una nova versione di a libreria notcurses v1.4.x hè stata liberata "a saga cuntinua! wu-tang! wu-tang!"
Notcurses hè una libreria TUI per emulatori di terminali muderni. Litteralmente traduttu - micca maledizioni. Hè scrittu in C, utilizendu intestazioni C++-safe. Wrappers dispunibili per Rust, C ++ и pitone.
Cosa hè: una biblioteca chì simplificà i TUI cumplessi nantu à l'emulatori di terminali muderni, chì sustene u massimu culori brillanti è Unicode. Parechje attività delegate à curses ponu esse realizate cù notcurses (è vice versa).
Ciò chì ùn hè micca: Una implementazione cumpatibile di X/Open curses o un sustitutu di ncurses in sistemi esistenti.
Notcurses deprecates l'API X/Open Curses furnita cum'è parte di a specificazione UNIX Single. Questa specificazione hè longa obsoleta è, per esempiu, ùn sustene micca a funziunalità di u terminal cum'è u culore di 24-bit non-indexed. Comu tali, notcurses ùn hè micca un sustitutu di maledizioni. Hè menu portatile, è definitivamente pruvatu nantu à menu hardware.
Sempre chì hè pussibule, notcurses usa a biblioteca terminfo furnita cù ncurses, prufittendu assai da a so portabilità.
Notcurses apre una funziunalità avanzata per interagisce cù l'utilizatori nantu à stazioni di travagliu, telefoni, laptops è tablette.
Perchè aduprà sta libreria non standard?
-
A sicurezza di u filu è l'usu efficiente in i prugrammi multi-threaded hè stata una considerazione di disignu da u principiu.
-
API più ben formatatu cumparatu à X/Open:
-
L'identificatori esportati sò prefissati per evità i collisioni di u spaziu di nomi.
-
U schedariu di l'ughjettu di a biblioteca esporta un settore minimu di caratteri. In u casu praticu, u codice staticu hè utilizatu solu per l'intestazione di linea. Questu facilita l'optimizazione di u compilatore è riduce i tempi di carica.
-
-
Tutte l'API supportanu nativamente u set di caratteri universale (Unicode). L'API cellula hè basatu annantu à u cuncettu Cluster di Grapheme Estensu di Unicode.
-
Funzioni visuali cumpresi imaghjini, fonti, video, testu à altu cuntrastu, sprites è spazii trasparenti. Tutte l'API supportanu nativamente u culore di 24 bit, quantificatu quantu necessariu da u terminal.
-
Licenza Apache2, à u cuntrariu dramma in parechji atti, chì hè a licenza ncurses (questa ultima hè riassuntu cum'è una "riformulazione di MIT-X11").
Dapoi a versione significativa precedente 1.1.0, un gran numaru di funzioni sò state aghjunte. I cambiamenti principali:
-
Widget di lettura per inserisce stringhe di forma libera ligati à stringhe di lettura
-
Un widget di sottoprocessu per spawning un sottoprocessu, gestione, è trasmette i so risultati.
-
Linux 5.3+ usa u novu mecanismu clone3 + pidfd per gestisce i prucessi senza una cundizione di razza.
-
Widget Fdplane per trasmette un descrittore di file arbitrariu à u pianu (in u quale hè custruitu u sottuprocessu). Tramindui permettenu callbacks per stilà o altrimente manipule u testu.
-
Rotazione di i piani è effetti visuali. Caricà visualizazioni da a memoria. Bltting casuale RGBA/BGRx.
-
U menu pò esse piazzatu nantu à unu (o dui) di i piani superiore è di fondu.
-
Grandi miglioramenti in u modu direttu.
-
Polyfills, gradienti è testu altu cuntrastu.
-
Aggiuntu Tetris cum'è un esempiu.
-
I wrappers C++ da Marek Habersack anu avà a capacità di lancià eccezzioni (se necessariu).
-
Python è Rust FFI aghjurnatu è pruvatu.
Demo video cù i cumenti di l'autore
U libru "Hacking The Planet! cù Notcourses" da l'autore
Source: linux.org.ru