Izlaista notcurses v1.4.1 — bibliotēka mūsdienu teksta saskarnēm


Izlaista notcurses v1.4.1 — bibliotēka mūsdienu teksta saskarnēm

Iznāca jauna notcurses bibliotēkas versija v1.4.x «stāsts turpinās! wu-tang! wu-tang!»

Notcurses ir TUI bibliotēka mūsdienu termināla emulatoriem. Burtiski tulkojot – nav lāstu (not curses). Tā ir uzrakstīta C valodā, izmantojot C++ drošos virsrakstus. Ir pieejamas apvalku bibliotēkas Rust, C++ un Python.

Kas tas ir: bibliotēka, kas atvieglo sarežģītus TUI mūsdienu termināla emulatoros, maksimāli atbalstot spilgtas krāsas un Unicode. Daudzus uzdevumus, ko veic curses, var izpildīt ar notcurses (un otrādi).

Ar ko tas nav: saderīga X/Open curses realizācija vai ncurses nomaiņa eksistējošās sistēmās.

Notcurses atsakās no X/Open Curses API, kas tiek nodrošināts kā daļa no Single UNIX Specification. Šī specifikācija ir novecojusi un, piemēram, neatbalsta tādas termināļa funkcionalitātes kā neindeksēta 24-bitu krāsa. Tādējādi notcurses nav curses aizvietotājs. Tā ir mazāk portatīva un noteikti testēta uz mazāka skaita ierīcēm.
Cik vien iespējams, notcurses izmanto terminfo bibliotēku, kas nāk kopā ar ncurses, gūstot lielu labumu no tās portabilitātes.
Notcurses atver paplašinātas iespējas mijiedarbībai ar lietotājiem darbvirsmas datoros, telefonos, klēpjdatoros un planšetdatoros.

Kāpēc izmantot šo neparasto bibliotēku?

  • Plūsmu drošība un efektīva izmantošana daudzplūsmu programmās jau sākotnēji bija projektēšanas apsvērums.

  • Precīzāk definēts API salīdzinājumā ar X/Open:

    • Eksportētās identifikatori ir ar prefiksu, lai izvairītos no nosaukumu telpu kolīzijām.

    • Bibliotēkas objektu fails eksportē minimālu simbolu kopu. Tur, kur tas ir lietderīgi, tiek izmantots statiskais kods tikai mazajiem virsrakstiem. Tas atvieglo kompilatora optimizāciju un samazina ielādes laiku.

  • Visi API sākotnēji atbalsta universālo simbolu kopu (Unicode). API šūnām balstās uz Unicode paplašinātās grafēmu grupas.

  • Vizuālās iespējas, tostarp attēli, fonti, video, augsta kontrasta teksti, sprites un caurspīdīgas zonas. Tās visas API nativitāti atbalsta 24-bitu krāsu, kvantizētu, ja nepieciešams, terminālim.

  • Apache2 licence, atšķirībā no drāmas vairāku aktu, kas ir ncurses licence (pēdējā kopsavilkums ir «MIT-X11 pārformulēšana»).

No iepriekšējā nozīmīgā relīzē 1.1.0 tika pievienots milzīgs daudzums funkciju. Galvenās izmaiņas:

  • Lasīšanas logrīks, lai ievadītu pēc izvēles formas virknēm, sasaistīts ar lasīšanas virknēm

  • Subprocess logrīks, lai radītu apakšprocesu, pārvaldītu to un straumētu rezultātus atpakaļ.

  • Linux 5.3+ izmanto jauno mehānismu clone3+pidfd, lai pārvaldītu procesus bez sacensību apstākļiem.

  • Fdplane logrīks, lai straumētu pēc izvēles faila deskriptora datus uz plakni (kurā ir izveidots apakšprocess). Abi ļauj atpakaļsauktajiem stilizēt vai citādi apstrādāt tekstu.

  • Plakņu rotācija un vizuālie efekti. Vizualizāciju ielāde no atmiņas. Pēc izvēles RGBA/BGRx blitēšana.

  • Izvēlnes var izvietot uz jebkurām (vai abām) no augšējām un apakšējām plaknēm.

  • Lielas uzlabojumi Direct režīmā.

  • Polyfills, gradienti un augsta kontrasta teksts.

  • Pievienots Tetris kā piemērs.

  • Marek Habersack izstrādātie C++ apvalki tagad var izmest izņēmumus (ja nepieciešams).

  • Python un Rust FFI ir atjaunināti un pārbaudīti.

Video demonstrācija ar autora komentāriem
Grāmata „Hacking The Planet! with Notcurses” no autora

Avots: linux.org.ru

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster