Notcurses v1.4.1 er udgivet - et bibliotek til moderne tekstgrænseflader


Notcurses v1.4.1 er udgivet - et bibliotek til moderne tekstgrænseflader

Den nye version af notcurses-biblioteket v1.4.x er udgivet: "sagaen fortsætter! wu-tang! wu-tang!"

Notcurses er et TUI-bibliotek til moderne terminalemulatorer. Bogstaveligt talt oversat – ikke forbandelser (not curses). Det er skrevet i C og bruger C++-sikre headers. Der er wrappers til Rust, C++ og Python.

Hvad det er: et bibliotek, der forenkler komplekse TUI'er på moderne terminalemulatorer og understøtter i videst muligt omfang lyse farver og Unicode. Mange opgaver, der er overladt til curses, kan udføres med notcurses (og omvendt).

Hvad det ikke er: en kompatibel implementering af X/Open curses eller en erstatning for ncurses på eksisterende systemer.

Notcurses afviser API'en fra X/Open Curses, der medfølger som en del af Single UNIX Specification. Denne specifikation er længe forældet og understøtter eksempelvis ikke funktionalitet som ikke-indekseret 24-bit farve. Som sådan er notcurses ikke en erstatning for curses. Den er mindre bærbar og er bestemt testet på færre hardwarekonfigurationer.
Når det er muligt, bruger notcurses bibliotekt terminfo, der leveres sammen med ncurses, og drager stor fordel af dens bærbarhed.
Notcurses åbner udvidede muligheder for interaktion med brugere på arbejdsstationer, telefoner, bærbare computere og tablets.

Hvorfor bruge dette ikke-standard bibliotek?

  • Tråd-sikkerhed og effektiv anvendelse i multitrådede programmer har været et designhensyn fra starten.

  • Et mere korrekt udformet API i forhold til X/Open:

    • Eksporterede identifikatorer har et præfiks for at undgå navnerumskollisioner.

    • Objektfilen fra biblioteket eksporterer et minimalt sæt symboler. Hvor det er rimeligt, bruges statisk kode kun til små overskrifter. Dette letter kompilatoroptimering og reducerer indlæsningstiden.

  • Alle API'er understøtter fra starten et universelt tegnsæt (Unicode). API'et til celler er baseret på konceptet Unicode's Extended Grapheme Cluster.

  • Visuelle muligheder, inklusive billeder, skrifttyper, videoer, højkontrasttekst, sprites og gennemsigtige områder. Alle API'er understøtter oprindeligt 24-bit farve, kvantiseret efter behov for terminalen.

  • Apache2-licens, i modsætning til drama i flere akter, som er licensen for ncurses (sidstnævnte opsummeres som "omformulering af MIT-X11").

Siden den seneste betydelige udgivelse 1.1.0 er der tilføjet et stort antal funktioner. De væsentligste ændringer:

  • Widget til læsning for input af strenge i vilkårlig form med tilknytning til læsestrenge

  • Subprocess-widget til oprettelse af en underproces, styring af den og streaming af dens resultater tilbage.

  • I Linux 5.3+ anvendes den nye mekanisme clone3+pidfd til processtyring uden race condition.

  • Fdplane-widget til streaming af vilkårlig filbeskrivelse til en flade (hvorunderprocessen er bygget). Begge tillader callbacks at style eller på anden måde behandle teksten.

  • Rotation af flader og visuelle effekter. Indlæsning af visualiseringer fra hukommelsen. Vilkårlig blit af RGBA/BGRx.

  • Menuen kan placeres på en hvilken som helst (eller begge) af de øverste og nederste flader.

  • Store forbedringer i Direct-tilstand.

  • Polyfills, gradienter og højkontrast tekst.

  • Tetris er tilføjet som et eksempel.

  • C++ wrappers fra Marek Habersack har fået mulighed for at kaste undtagelser (hvis nødvendigt).

  • Python og Rust FFI er opdateret og testet.

Video demo med kommentarer fra forfatteren
Bogen "Hacking The Planet! with Notcurses" af forfatteren

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster