è stata rilasciata notcurses v1.4.1, una libreria per le moderne interfacce di testo


è stata rilasciata notcurses v1.4.1, una libreria per le moderne interfacce di testo

È stata rilasciata una nuova versione della libreria notcurses v1.4.x “la saga continua! wu-tang! wu-tang!”

Notcurses è una libreria TUI per i moderni emulatori di terminale. Tradotto letteralmente – non maledizioni. È scritto in C, utilizzando intestazioni sicure per C++. Wrapper disponibili per Ruggine, C++ и Python.

Che cos'è: una libreria che semplifica le TUI complesse sui moderni emulatori di terminale, supportando al massimo colori brillanti e Unicode. Molti compiti delegati a curses possono essere eseguiti utilizzando notcurses (e viceversa).

Cosa non è: un'implementazione compatibile di curses X/Open o un sostituto di ncurses su sistemi esistenti.

Notcurses depreca l'API X/Open Curses fornita come parte della specifica UNIX singola. Questa specifica è obsoleta da tempo e, ad esempio, non supporta funzionalità del terminale come il colore a 24 bit non indicizzato. In quanto tale, notcurses non sostituisce curses. È meno portatile e sicuramente testato su meno hardware.
Quando possibile, notcurses utilizza la libreria terminfo fornita con ncurses, traendo grande vantaggio dalla sua portabilità.
Notcurses apre funzionalità avanzate per interagire con gli utenti su workstation, telefoni, laptop e tablet.

Perché utilizzare questa libreria non standard?

  • La sicurezza dei thread e l'uso efficiente nei programmi multi-thread sono stati una considerazione di progettazione fin dall'inizio.

  • API più ben formattate rispetto a X/Open:

    • Gli identificatori esportati hanno un prefisso per evitare collisioni dello spazio dei nomi.

    • Il file oggetto della libreria esporta un set minimo di caratteri. Dove pratico, il codice statico viene utilizzato solo per le intestazioni di riga. Ciò semplifica l'ottimizzazione del compilatore e riduce i tempi di caricamento.

  • Tutte le API supportano nativamente il set di caratteri universale (Unicode). L'API della cella si basa sul concetto Cluster di grafemi esteso di Unicode.

  • Funzionalità visive tra cui immagini, caratteri, video, testo ad alto contrasto, sprite e aree trasparenti. Tutte le API supportano nativamente il colore a 24 bit, quantizzato secondo necessità dal terminale.

  • Licenza Apache2, a differenza drammi in più atti, che è la licenza ncurses (quest'ultima è riassunta come una "riformulazione del MIT-X11").

Dalla precedente versione significativa 1.1.0, sono state aggiunte un numero enorme di funzionalità. Principali modifiche:

  • Widget di lettura per l'inserimento di stringhe in formato libero collegate a stringhe di lettura

  • Un widget di sottoprocesso per generare un sottoprocesso, gestirlo e riprodurre in streaming i suoi risultati.

  • Linux 5.3+ utilizza il nuovo meccanismo clone3+pidfd per gestire i processi senza condizioni di competizione.

  • Widget Fdplane per lo streaming di un descrittore di file arbitrario sul piano (su cui è costruito il sottoprocesso). Entrambi consentono ai callback di definire o manipolare in altro modo il testo.

  • Rotazione degli aerei ed effetti visivi. Caricamento visualizzazioni dalla memoria. Blit RGBA/BGRx casuale.

  • Il menu può essere posizionato su uno (o entrambi) i piani superiore e inferiore.

  • Grandi miglioramenti nella modalità diretta.

  • Polyfill, gradienti e testo ad alto contrasto.

  • Aggiunto Tetris come esempio.

  • I wrapper C++ di Marek Habersack ora hanno la capacità di generare eccezioni (se necessario).

  • Python e Rust FFI aggiornati e testati.

Video demo con commenti dell'autore
Il libro “Hacking The Planet! con Notcourses" dell'autore

Fonte: linux.org.ru

Aggiungi un commento