Megjelent a notcurses v1.4.x könyvtár új verziója: "a saga folytatódik! wu-tang! wu-tang!"
A Notcurses egy TUI könyvtár a modern terminálemulátorokhoz. Szó szerint azt jelenti – nem átkok (not curses). C nyelven készült, a C++-barát fejek használatával. Elérhetők wrapper-ek Rust, C++ és Python.
Mi ez: egy könyvtár, amely leegyszerűsíti a bonyolult TUI-kat a modern terminálemulátorokon, maximálisan támogatja a fényes színeket és az Unicode-ot. Sok feladat, amelyet a curses kezel, elvégezhető a notcurses segítségével (és fordítva).
Ami nem: kompatibilis X/Open curses megvalósítás vagy a ncurses helyettesítése a meglévő rendszereken.
A Notcurses elhagyja az X/Open Curses API-t, amely a Single UNIX Specification részeként érkezik. Ez a specifikáció régóta elavult, és például nem támogatja a terminál olyan funkcióit, mint a nem indexelt 24-bites szín. Ennek megfelelően a notcurses nem helyettesíti a curses-t. Kevésbé hordozható, és határozottan kevesebb hardveren tesztelték.
Amikor csak lehetséges, a notcurses a ncurses-szal együtt szállított terminfo könyvtárat használja, nagy hasznot húzva annak hordozhatóságából.
A Notcurses kiterjesztett funkciókat nyújt a felhasználók interakciójához munkaállomásokon, telefonokon, laptopokon és táblagépeken.
Miért használjuk ezt a nem szabványos könyvtárat?
A szálbiztonság és a hatékony felhasználás a több szálas programokban már a tervezés során figyelembe lett véve.
Helyesebben kialakított API az X/Open-hoz képest:
Az exportált azonosítók prefixet kapnak, hogy elkerüljék a névtér ütközéseket.
A könyvtár objektumfájlja a minimális számú szimbólumot exportál. Ahol indokolt, ott statikus kódot használnak csak az alacsony szintű fejlécekhez. Ez megkönnyíti a fordítóoptimalizálást és csökkenti a betöltési időt.
-
Minden API kezdetben támogatja az univerzális szimbólumszettet (Unicode). A cellákhoz készült API a következő fogalomra alapoz: Unicode kiterjesztett grafémaklaszter.
Látványos lehetőségek, beleértve a képeket, betűtípusokat, videókat, nagy kontrasztú szöveget, sprite-okat és átlátszó területeket. Minden API natívan támogatja a 24-bites színt, szükség szerint quantálva a terminálhoz.
-
Apache2 licenc, szemben a dráma több felvonásban, ami a ncurses licenc (az utolsó úgy összegezhető, mint „MIT-X11 újrafogalmazása”).
Az előző jelentős kiadás óta 1.1.0 rengeteg új funkció került hozzáadásra. Főbb változások:
A widget egyedi formájú sztringek olvasására szolgál, közvetlen kapcsolatban a sztringekkel.
Subprocess widget egy új alprocessz generálására, irányítására és az eredmények visszaáramlására.
Linux 5.3+ verzióban új clone3+pidfd mechanizmus kerül bevezetésre a folyamatok versenyhelyzet nélküli kezelésére.
Fdplane widget, amely lehetővé teszi bármely fájl leíró folyamatos továbbítását a síkra (ahol az alprocessz építve van). Mindkettő lehetővé teszi visszahívások stílusozását vagy egyéb szövegfeldolgozást.
Síklapok és vizuális effektusok forgatása. Vizualizációk betöltése memóriából. Szabad RGBA/BGRx blittelés.
A menü tetszőleges (vagy mindkét) felső és alsó síkon elhelyezhető.
Jelentős fejlesztések a Direct módban.
Polyfill-ek, gradientek és magas kontrasztú szöveg.
Tetris hozzáadása mint példa.
A C++ wrapper-ek Marek Habersack-tól lehetőséget kaptak kivételek dobására (ha szükséges).
A Python és Rust FFI frissítésre és tesztelésre került.
Videó bemutató, az író kommentárjaival.
A 'Hacking The Planet! with Notcurses' című könyv az írótól.
Forrás: linux.org.ru

