Izšla je nova različica knjižnice notcurses v1.4.x «zgodba se nadaljuje! wu-tang! wu-tang!»
Notcurses je TUI knjižnica za sodobne terminalske emulatorje. Do besede, pomeni – ne prekletstva (not curses). Napisana je v C, z uporabo C++-varnih glav. Rust, C++ in Python.
Kaj je to: knjižnica, ki poenostavi kompleksne TUI na sodobnih terminalskih emulatorjih, s polno podporo za svetle barve in Unicode. Mnoga opravila, dodeljena curses, je mogoče izvesti s pomočjo notcurses (in obratno).
Kaj to ni: združljiva implementacija X/Open curses ali nadomestek za ncurses v obstoječih sistemih.
Notcurses se odpove API-ju X/Open Curses, ki je del Single UNIX Specification. Ta specifikacija je že dolgo zastarela in ne podpira, na primer, funkcionalnosti terminala, kot je neindeksirana 24-bitna barva. Tako notcurses ni zamenjava za curses. Je manj prenosna in se zagotovo testira na manj znanih napravah.
Kadar je to mogoče, notcurses uporablja knjižnico terminfo, ki jo prinaša ncurses, kar pomeni, da izkorišča njeno prenosljivost.
Notcurses odpre napredne funkcionalnosti za interakcijo z uporabniki na delovnih postajah, telefonih, prenosnikih in tablicah.
Zakaj uporabljati to nestandardno knjižnico?
Varnostni tokovi in učinkovita raba v večnitnih programih so bili od samega začetka projektne zasnove.
Bolj pravilno oblikovana API v primerjavi z X/Open:
Izvoženi identifikatorji imajo predpono, da se izognejo konfliktom v prostorih imen.
Objektna datoteka knjižnice izvozi minimalni niz simbolov. Tam, kjer je smiselno, se uporablja statični koda le za majhne naslove. To olajša optimizacijo prevajalnika in skrajša čas nalaganja.
-
Vsi API-ji od samega začetka podpirajo univerzalni nabor simbolov (Unicode). API za celice temelji na konceptu Razširjenega razreda grafemov Unicode.
Vizualne zmožnosti, vključno s slikami, pisavami, video posnetki, visokokontrastnim besedilom, sprite in prosojnimi področji. Vsi API-ji natančno podpirajo 24-bitno barvo, kvantizirano po potrebi za terminal.
-
Licenca Apache2, v nasprotju z dramo v več dejanjih, ki je licenca ncurses (zadnja se povzetkuje kot «prekodiranje MIT-X11»).
Od prejšnjega pomembnega izida 1.1.0 je bilo dodanih ogromno funkcij. Glavne spremembe:
Vtičnik za branje za vnos poljubnih nizov s povezovanjem na vrstice za branje
Vtičnik subprocess za ustvarjanje podprocesa, njegovo upravljanje in prenos njegovih rezultatov nazaj.
V Linuxu 5.3+ se uporablja nov mehanizem clone3+pidfd za upravljanje procesov brez race condition.
Vtičnik Fdplane za prenos poljubnega datotečnega descriptorja na ravnino (na kateri je zgrajen podproces). Obe omogočata, da se povratni klici stilizirajo ali kako drugače obdelujejo besedilo.
Vrtenje ravnin in vizualni učinki. Nalaganje vizualizacij iz pomnilnika. Poljubno blitiranje RGBA/BGRx.
Meni je možno postaviti na katero koli (ali na obe) zgornji ali spodnji ravnini.
Velike izboljšave v načinu Direct.
Polyfills, gradienti in visokokontrastno besedilo.
Dodana je bila Tetris igra kot primer.
C++ ovitki od Mareka Habersacka sedaj lahko vržejo izjeme (kar potrebujete).
Python in Rust FFI sta bila posodobljena in testirana.
Video demo s komentarji avtorja
Knjiga "Hacking The Planet! with Notcurses" avtorja
Izvor: linux.org.ru

