notcurses v1.4.1 hè stata liberata - una biblioteca per interfacce di testu muderni


notcurses v1.4.1 hè stata liberata - una biblioteca per interfacce di testu muderni

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

Add a comment