Ang notcurses v1.4.1 gipagawas - usa ka librarya alang sa modernong mga interface sa teksto


Ang notcurses v1.4.1 gipagawas - usa ka librarya alang sa modernong mga interface sa teksto

Usa ka bag-ong bersyon sa notcurses v1.4.x library ang gipagawas “the saga continues! wu-tang! wu-tang!”

Ang Notcurses usa ka librarya sa TUI alang sa modernong mga emulator sa terminal. Literal nga gihubad - dili mga tunglo. Gisulat kini sa C, gamit ang C++-safe header. Magamit ang mga wrapper alang sa taya, C ++ и Python.

Unsa man kini: usa ka librarya nga nagpasimple sa mga komplikado nga TUI sa modernong mga emulator sa terminal, labi nga nagsuporta sa mahayag nga mga kolor ug Unicode. Daghang mga buluhaton nga gitugyan sa mga tunglo ang mahimo gamit ang dili mga tunglo (ug vice versa).

Unsa kini dili: Usa ka compatible nga pagpatuman sa X/Open nga mga tunglo o usa ka kapuli sa mga ncurses sa kasamtangan nga mga sistema.

Gisalikway sa Notcurses ang X/Open Curses API nga gihatag isip kabahin sa Single UNIX Specification. Kini nga espesipikasyon dugay na nga karaan ug, pananglitan, wala nagsuporta sa terminal functionality sama sa dili-index nga 24-bit nga kolor. Ingon niana, ang dili mga tunglo dili kapuli sa mga tunglo. Kini dili kaayo madaladala, ug siguradong gisulayan sa dili kaayo hardware.
Kung mahimo, ang notcurses naggamit sa terminfo library nga gisuplay sa mga ncurses, nga nakabenepisyo ug dako gikan sa pagkadala niini.
Ang Notcurses nag-abli sa advanced functionality alang sa pagpakig-uban sa mga tiggamit sa workstations, phones, laptops ug tablets.

Nganong gamiton kining dili standard nga librarya?

  • Ang kaluwasan sa thread ug episyente nga paggamit sa multi-threaded nga mga programa usa ka konsiderasyon sa disenyo sukad pa sa sinugdanan.

  • Mas maayo nga pagkaporma nga API kumpara sa X/Open:

    • Gi-prefix ang mga gi-eksport nga identifier aron malikayan ang pagbangga sa namespace.

    • Ang library object file nag-eksport og gamay nga set sa mga karakter. Kung praktikal, ang static nga code gigamit alang sa mga ulohan sa linya lamang. Gipadali niini ang pag-optimize sa compiler ug gipamenos ang mga oras sa pagkarga.

  • Ang tanan nga mga API lumad nga nagsuporta sa unibersal nga set sa karakter (Unicode). Ang cell API gibase sa konsepto Ang Unicode's Extended Grapheme Cluster.

  • Mga biswal nga bahin lakip ang mga imahe, font, video, taas nga kontra nga teksto, sprite, ug transparent nga mga lugar. Ang tanan nga mga API lumad nga nagsuporta sa 24-bit nga kolor, gi-quantize kung gikinahanglan sa terminal.

  • Ang lisensya sa Apache2, dili sama drama sa daghang mga buhat, nga mao ang lisensya sa ncurses (ang ulahi gi-summarize isip usa ka "reformulation sa MIT-X11").

Sukad sa miaging mahinungdanong pagpagawas 1.1.0, daghang mga bahin ang gidugang. Panguna nga mga pagbag-o:

  • Ang widget sa pagbasa alang sa pagsulod sa libre nga porma nga mga kuwerdas nga nalambigit sa mga kuwerdas sa pagbasa

  • Usa ka subprocess nga widget para sa pagpatunghag subprocess, pagdumala niini, ug pag-streaming sa mga resulta niini balik.

  • Ang Linux 5.3+ naggamit sa bag-ong clone3+pidfd nga mekanismo sa pagdumala sa mga proseso nga walay kondisyon sa lumba.

  • Fdplane widget para sa streaming sa usa ka arbitraryong file descriptor sa eroplano (diin ang subprocess gitukod). Ang duha nagtugot sa mga callback sa estilo o sa laing paagi sa pagmaniobra sa teksto.

  • Pag-rotate sa mga eroplano ug visual effects. Nag-load sa mga visualization gikan sa memorya. Random nga RGBA/BGRx blitting.

  • Ang menu mahimong ibutang sa bisan asa (o pareho) sa ibabaw ug ubos nga mga eroplano.

  • Daghang pag-uswag sa Direct mode.

  • Mga polyfill, gradients ug taas nga contrast nga teksto.

  • Gidugang ang Tetris isip pananglitan.

  • Ang mga wrapper sa C ++ gikan sa Marek Habersack karon adunay katakus sa paglabay sa mga eksepsiyon (kung gikinahanglan).

  • Gi-update ug gisulayan ang Python ug Rust FFI.

Video demo nga adunay mga komento sa tagsulat
Ang libro nga "Hacking The Planet! uban sa Notcourses" gikan sa tagsulat

Source: linux.org.ru

Idugang sa usa ka comment