notcurses v1.4.1 është lëshuar - një bibliotekë për ndërfaqet moderne të tekstit


notcurses v1.4.1 është lëshuar - një bibliotekë për ndërfaqet moderne të tekstit

Një version i ri i bibliotekës notcurses v1.4.x është lëshuar "saga vazhdon! wu-tang! wu-tang!”

Notcurses është një bibliotekë TUI për emulatorët modernë të terminaleve. Përkthyer fjalë për fjalë - jo mallkime. Është shkruar në C, duke përdorur titujt e sigurt C++. Mbështjellës në dispozicion për Ndryshk, C + + и Piton.

Çfarë është ajo: një bibliotekë që thjeshton TUI komplekse në emulatorët modernë të terminaleve, duke mbështetur maksimalisht ngjyrat e ndritshme dhe Unicode. Shumë detyra të deleguara për mallkimet mund të kryhen duke përdorur notcurses (dhe anasjelltas).

Çfarë nuk është: Një zbatim i pajtueshëm i mallkimeve X/Open ose një zëvendësim për ncurses në sistemet ekzistuese.

Notcurses zhvlerëson API-në X/Open Curses të ofruar si pjesë e Specifikimit të UNIX-it të vetëm. Ky specifikim është i vjetëruar prej kohësh dhe, për shembull, nuk mbështet funksionalitetin e terminalit, si p.sh. ngjyrat 24-bit të paindeksuar. Si i tillë, notcurses nuk është një zëvendësim për mallkimet. Është më pak i lëvizshëm dhe patjetër i testuar në më pak pajisje.
Kurdoherë që është e mundur, notcurses përdor bibliotekën terminfo të furnizuar me ncurses, duke përfituar shumë nga transportueshmëria e saj.
Notcurses hap funksionalitet të avancuar për ndërveprim me përdoruesit në stacione pune, telefona, laptopë dhe tableta.

Pse ta përdorni këtë bibliotekë jo standarde?

  • Siguria e fijeve dhe përdorimi efikas në programet me shumë fije ka qenë një konsideratë e projektimit që në fillim.

  • API më e mirëformatuar në krahasim me X/Open:

    • Identifikuesit e eksportuar janë prefiksuar për të shmangur përplasjet e hapësirës së emrave.

    • Skedari i objektit të bibliotekës eksporton një grup minimal karakteresh. Aty ku është praktike, kodi statik përdoret vetëm për titujt e rreshtave. Kjo e bën më të lehtë optimizimin e përpiluesit dhe redukton kohën e ngarkesës.

  • Të gjitha API-të mbështesin në mënyrë origjinale grupin universal të karaktereve (Unicode). API-ja e qelizave bazohet në koncept Grupimi i zgjeruar i grafemës i Unicode.

  • Veçoritë vizuale duke përfshirë imazhet, fontet, videot, tekstin me kontrast të lartë, spritet dhe zonat transparente. Të gjitha API-të mbështesin në mënyrë origjinale ngjyrën 24-bit, të kuantizuar sipas nevojës nga terminali.

  • Licenca Apache2, ndryshe nga dramë në disa akte, që është licenca ncurses (kjo e fundit përmblidhet si "riformulim i MIT-X11").

Që nga lëshimi i mëparshëm i rëndësishëm 1.1.0, janë shtuar një numër i madh i veçorive. Ndryshimet kryesore:

  • Miniaplikacioni i leximit për futjen e vargjeve të formës së lirë të lidhur me vargjet e leximit

  • Një miniaplikacion nënprocesi për krijimin e një nënprocesi, menaxhimin e tij dhe transmetimin e rezultateve të tij.

  • Linux 5.3+ përdor mekanizmin e ri clone3+pidfd për të menaxhuar proceset pa kushte gare.

  • Miniaplikacioni Fdplane për transmetimin e një përshkruesi arbitrar të skedarit në plan (në të cilin është ndërtuar nënprocesi). Të dyja lejojnë që kthimet e thirrjeve të stilojnë ose të manipulojnë ndryshe tekstin.

  • Rrotullimi i avionëve dhe efektet vizuale. Ngarkimi i vizualizimeve nga kujtesa. Shpërthim i rastësishëm RGBA/BGRx.

  • Menyja mund të vendoset në njërën (ose të dyja) të planeve të sipërme dhe të poshtme.

  • Përmirësime të mëdha në modalitetin Direct.

  • Polyfills, gradient dhe tekst me kontrast të lartë.

  • U shtua Tetris si shembull.

  • Mbështjellësit C++ nga Marek Habersack tani kanë mundësinë të bëjnë përjashtime (nëse nevojitet).

  • Python dhe Rust FFI u përditësuan dhe u testuan.

Video demo me komentet e autorit
Libri “Hakimi i planetit! me Notcourses” nga autori

Burimi: linux.org.ru

Shto një koment