Ang notcurses v1.4.1 ay inilabas - isang library para sa mga modernong text interface


Ang notcurses v1.4.1 ay inilabas - isang library para sa mga modernong text interface

Isang bagong bersyon ng notcurses v1.4.x library ang inilabas “the saga continues! wu-tang! wu-tang!”

Ang Notcurses ay isang library ng TUI para sa mga modernong terminal emulator. Literal na isinalin – hindi mga sumpa. Ito ay nakasulat sa C, gamit ang C++-safe na mga header. Available ang mga wrapper para sa Kalawang, C + + и Sawa.

Ano ito: isang library na pinapasimple ang mga kumplikadong TUI sa mga modernong terminal emulator, na pinakamataas na sumusuporta sa maliliwanag na kulay at Unicode. Maraming mga gawaing itinalaga sa mga sumpa ang maaaring gawin gamit ang hindi sumpa (at kabaliktaran).

Ano ito ay hindi: Isang katugmang pagpapatupad ng X/Open curses o isang kapalit para sa ncurses sa mga kasalukuyang system.

Hindi na ginagamit ng Notcurses ang X/Open Curses API na ibinigay bilang bahagi ng Single UNIX Specification. Ang detalyeng ito ay matagal nang luma at, halimbawa, ay hindi sumusuporta sa terminal functionality gaya ng hindi na-index na 24-bit na kulay. Dahil dito, ang hindi sumpa ay hindi kapalit ng sumpa. Ito ay hindi gaanong portable, at tiyak na nasubok sa mas kaunting hardware.
Hangga't maaari, ginagamit ng notcurses ang terminfo library na may kasamang ncurses, na lubos na nakikinabang mula sa portability nito.
Binubuksan ng Notcurses ang advanced na functionality para sa pakikipag-ugnayan sa mga user sa mga workstation, telepono, laptop at tablet.

Bakit gagamitin itong hindi karaniwang library?

  • Ang kaligtasan ng thread at mahusay na paggamit sa mga multi-threaded na programa ay isang pagsasaalang-alang sa disenyo mula pa sa simula.

  • Mas mahusay na na-format na API kumpara sa X/Open:

    • Naka-prefix ang mga na-export na identifier upang maiwasan ang mga banggaan ng namespace.

    • Ang library object file ay nag-e-export ng kaunting set ng mga character. Kung saan praktikal, ang static na code ay ginagamit para sa mga line header lamang. Ginagawa nitong mas madaling i-optimize ang compiler at binabawasan ang mga oras ng pagkarga.

  • Ang lahat ng mga API ay native na sumusuporta sa unibersal na set ng character (Unicode). Ang cell API ay batay sa konsepto Ang Extended Grapheme Cluster ng Unicode.

  • Mga visual na feature kabilang ang mga larawan, font, video, high-contrast na text, sprite, at transparent na lugar. Ang lahat ng mga API ay native na sumusuporta sa 24-bit na kulay, na binibilang kung kinakailangan ng terminal.

  • Lisensya ng Apache2, hindi katulad mga drama sa ilang mga aksyon, na siyang lisensya ng ncurses (ang huli ay ibinubuod bilang isang "repormulasyon ng MIT-X11").

Mula noong nakaraang makabuluhang release 1.1.0, isang malaking bilang ng mga tampok ang naidagdag. Mga pangunahing pagbabago:

  • Reading widget para sa pagpasok ng mga free-form na string na naka-link sa reading string

  • Isang subprocess na widget para sa pag-spawning ng subprocess, pamamahala nito, at pag-stream ng mga resulta nito pabalik.

  • Ginagamit ng Linux 5.3+ ang bagong mekanismo ng clone3+pidfd upang pamahalaan ang mga proseso nang walang kundisyon ng lahi.

  • Fdplane widget para sa pag-stream ng arbitrary na file descriptor sa eroplano (kung saan binuo ang subprocess). Parehong pinapayagan ang mga callback na mag-istilo o kung hindi man ay manipulahin ang text.

  • Pag-ikot ng mga eroplano at visual effect. Naglo-load ng mga visualization mula sa memorya. Random na RGBA/BGRx blitting.

  • Ang menu ay maaaring ilagay sa alinman (o pareho) sa itaas at ibabang mga eroplano.

  • Malaking pagpapabuti sa Direct mode.

  • Mga polyfill, gradient at mataas na contrast na text.

  • Idinagdag ang Tetris bilang isang halimbawa.

  • Ang mga balot na C++ ni Marek Habersack ay mayroon na ngayong kakayahang maghagis ng mga pagbubukod (kung kinakailangan).

  • Na-update at nasubok ang Python at Rust FFI.

Video demo na may mga komento ng may-akda
Ang aklat na “Hacking The Planet! kasama ang Notcourses" mula sa may-akda

Pinagmulan: linux.org.ru

Magdagdag ng komento