notcurses v1.4.1 estis publikigita - biblioteko por modernaj tekstaj interfacoj


notcurses v1.4.1 estis publikigita - biblioteko por modernaj tekstaj interfacoj

Nova versio de la biblioteko notcurses v1.4.x estis publikigita "la sagao daŭras! wu-tang! wu-tang!"

Notcurses estas TUI-biblioteko por modernaj finaj emuliloj. Laŭvorte tradukite - ne malbenoj. Ĝi estas skribita en C, uzante C++-sekurajn titolojn. Envolvaĵoj haveblaj por rustiĝi, C ++ и python.

Kio ĝi estas: biblioteko kiu simpligas kompleksajn TUI-ojn sur modernaj finaj emuliloj, maksimume subtenante brilajn kolorojn kaj Unikodon. Multaj taskoj delegitaj al malbenoj povas esti faritaj uzante notcurses (kaj inverse).

Kio ĝi ne estas: Kongrua efektivigo de X/Open malbenoj aŭ anstataŭaĵo por ncurses sur ekzistantaj sistemoj.

Notcurses malrekomendas la X/Open Curses API provizitan kiel parto de la Ununura UNIX Specifo. Tiu specifo estas longe malmoderna kaj, ekzemple, ne apogas terminalfunkciecon kiel ekzemple ne-indeksita 24-bita koloro. Kiel tia, notcurses ne estas anstataŭaĵo por malbenoj. Ĝi estas malpli portebla, kaj certe provita sur malpli da aparataro.
Kiam ajn eblas, notcurses uzas la terminfo-bibliotekon provizitan per ncurses, profitante multe el ĝia porteblo.
Notcurses malfermas altnivelan funkciecon por interagi kun uzantoj sur laborstacioj, telefonoj, tekkomputiloj kaj tablojdoj.

Kial uzi ĉi tiun ne-norman bibliotekon?

  • Fadensekureco kaj efika uzo en plurfadenaj programoj estis desegna konsidero de la komenco mem.

  • Pli bone formatita API kompare kun X/Open:

    • Eksportitaj identigiloj estas prefiksitaj por eviti nomspackoliziojn.

    • La biblioteka objektodosiero eksportas minimuman aron da signoj. Kie praktike, senmova kodo estas uzata nur por liniokapoj. Ĉi tio faciligas optimumigi la kompililon kaj reduktas ŝarĝtempojn.

  • Ĉiuj API-oj denaske subtenas la universalan signaron (Unikodo). La ĉela API baziĝas sur la koncepto La Etendita Grafema Areto de Unikodo.

  • Vidaj funkcioj inkluzive de bildoj, tiparoj, filmetoj, altkontrasta teksto, spritoj kaj travideblaj areoj. Ĉiuj API-oj denaske subtenas 24-bitan koloron, kvantigitan laŭbezone de la terminalo.

  • Apache2-licenco, male al dramo en pluraj aktoj, kiu estas la licenco ncurses (ĉi-lasta estas resumita kiel "reformulo de MIT-X11").

Ekde la antaŭa signifa eldono 1.1.0, granda nombro da funkcioj estis aldonitaj. Ĉefaj ŝanĝoj:

  • Leganta fenestraĵo por enigi liberformajn ŝnurojn ligitajn al legado de ŝnuroj

  • Subproceza fenestraĵo por generi subprocezon, administri ĝin kaj reflui ĝiajn rezultojn.

  • Linukso 5.3+ uzas la novan mekanismon clone3+pidfd por administri procezojn sen raskondiĉo.

  • Fdplane-fenestraĵo por fluado de arbitra dosierpriskribilo al la aviadilo (sur kiu la subprocezo estas konstruita). Ambaŭ permesas revokojn stiligi aŭ alie manipuli tekston.

  • Rotacio de aviadiloj kaj vidaj efikoj. Ŝargante bildigojn el memoro. Hazarda RGBA/BGRx bliting.

  • La menuo povas esti metita sur aŭ (aŭ ambaŭ) el la supraj kaj malsupraj ebenoj.

  • Grandaj plibonigoj en Rekta reĝimo.

  • Poliplenigaĵoj, gradientoj kaj alta kontrasta teksto.

  • Aldonita Tetriso kiel ekzemplo.

  • C++-envolvaĵoj de Marek Habersack nun havas la kapablon ĵeti esceptojn (se necese).

  • Python kaj Rust FFI ĝisdatigitaj kaj provitaj.

Videodemo kun komentoj de aŭtoro
La libro "Haki La Planedon! kun Notcourses" de la aŭtoro

fonto: linux.org.ru

Aldoni komenton