Notcurses v1.4.1 har blitt utgitt – et bibliotek for moderne tekstgrensesnitt


Notcurses v1.4.1 har blitt utgitt – et bibliotek for moderne tekstgrensesnitt

Den nye versjonen av notcurses v1.4.x «sagaen fortsetter! wu-tang! wu-tang!» er her

Notcurses er et TUI-bibliotek for moderne terminalemulatorer. Bokstavelig talt oversatt – ingen forbannelser (not curses). Det er skrevet i C, med bruk av C++-sikre overskrifter. Wrapper for Rust, C++ og Python.

Hva det er: et bibliotek som forenkler komplekse TUI i moderne terminalemulatorer, og støtter sterke farger og Unicode best mulig. Mange oppgaver som tradisjonelt er delegert til curses, kan utføres med notcurses (og omvendt).

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

Notcurses avviser API-en X/Open Curses, som leveres som en del av Single UNIX Specification. Denne spesifikasjonen er lenge utdatert og støtter for eksempel ikke terminalfunksjoner som uindeksert 24-bits farge. Dermed er ikke notcurses en erstatning for curses. Den er mindre portabel, og definitivt testet på færre maskinvare.
Når det er mulig, bruker notcurses terminfo-biblioteket som følger med ncurses, og utvinner stor nytte av dets portabilitet.
Notcurses åpner opp utvidede funksjonsmuligheter for interaksjon med brukere på arbeidsstasjoner, telefoner, bærbare PC-er og nettbrett.

Hvorfor bruke dette ikke-standardbiblioteket?

  • Trådsikkerhet og effektiv bruk i flertrådede programmer har vært en designbetraktning fra starten av.

  • Et mer korrekt utformet API sammenlignet med X/Open:

    • Eksporterte identifikatorer har prefiks for å unngå kollisjoner i navnerom.

    • Objektfilen til bibliotekt eksporterer et minimalt sett med symboler. Der det er hensiktsmessig, brukes statisk kode kun for mindre overskrifter. Dette letter optimaliseringen av kompilatoren og reduserer laste tiden.

  • Alle API-er støtter fra starten av et universelt teikensett (Unicode). API-er for celler er basert på konseptet Unicode’s Extended Grapheme Cluster.

  • Visuelle muligheter, inkludert bilder, skrifttyper, video, høykontrasttekst, sprites og transparente områder. Alle API-er støtter opprinnelig 24-bits farge, kvantifisert etter behov for terminalen.

  • Lisens: Apache2, i motsetning til drama i flere handlinger, som er en licens for ncurses (den sidste opsummeres som «omformulering af MIT-X11»).

Siden den sidste betydelige udgivelse 1.1.0 er der tilføjet en enorm mængde funktioner. De vigtigste ændringer:

  • Widget til input af strenge af vilkårlig form med binding til læsestrenge.

  • Subprocess-widget til at generere en subprocess, styre den og streamføre dens resultater tilbage.

  • I Linux 5.3+ anvendes en ny mekanisme clone3+pidfd til at styre processer uden race conditions.

  • Fdplane-widget til at streamføre vilkårlige filbeskriver til en flade (hvorpå subprocessen er bygget). Begge tillader tilbagekald for at style eller på anden måde behandle tekst.

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

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

  • Store forbedringer i Direct-mode.

  • Polyfills, gradienter og højkontrast tekst.

  • Tetris er tilføjet som eksempel.

  • C++ wrappers fra Marek Habersack har nu 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

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster