Den nya versionen av biblioteket notcurses v1.4.x "sagan fortsÀtter! wu-tang! wu-tang!" har slÀppts.
Notcurses Ă€r ett TUI-bibliotek för moderna terminalemulatorer. Ăversatt bokstavligt â inte förbannelser (not curses). Det Ă€r skrivet i C med C++-sĂ€kra headers. Wrapperar finns tillgĂ€ngliga för Rust, C++ och Python.
Vad det Àr: ett bibliotek som förenklar komplexa TUI i moderna terminalemulatorer, med maximal support för klara fÀrger och Unicode. MÄnga uppgifter som delegeras till curses kan utföras med notcurses (och vice versa).
Vad det inte Àr: en kompatibel implementation av X/Open curses eller en ersÀttning för ncurses pÄ befintliga system.
Notcurses avvisar X/Open Curses API som levereras som en del av Single UNIX Specification. Denna specifikation Àr lÀnge förÄldrad och stöder inte terminalfunktioner som icke-indexerad 24-bitars fÀrg. SÄledes Àr notcurses inte en ersÀttning för curses. Den Àr mindre portabel och har definitivt testats pÄ fÀrre enheter.
DÀr det Àr möjligt, anvÀnder notcurses terminfo-biblioteket som levereras tillsammans med ncurses, vilket ger stor nytta av dess portabilitet.
Notcurses öppnar upp för avancerade funktioner för interaktion med anvÀndare pÄ arbetsstationer, telefoner, bÀrbara datorer och surfplattor.
Varför anvÀnda detta icke-standardbibliotek?
TrÄdsÀkerhet och effektiv anvÀndning i flertrÄdade program var en designövervÀgning frÄn början.
Ett mer korrekt utformat API jÀmfört med X/Open:
Exporterade identiteter har ett prefix för att undvika kollisioner i namnrymder.
Bibliotekets objektfil exporterar ett minimalt set av symboler. DÀr det Àr lÀmpligt anvÀnds statisk kod endast för grundlÀggande rubriker. Detta underlÀttar kompilatoroptimering och minskar laddningstider.
-
Alla API:er stödjer frĂ„n början en universell uppsĂ€ttning tecken (Unicode). API:et för celler baseras pĂ„ konceptet Unicodeâs Extended Grapheme Cluster.
Visuella möjligheter, inklusive bilder, typsnitt, video, högkontrasttext, sprites och genomskinliga omrÄden. Alla API:er stöder ursprungligen 24-bitars fÀrg, kvantiserad vid behov för terminalen.
-
Apache2-licens, till skillnad frÄn draman i flera akter, vilket Àr licensen för ncurses (den senaste sammanfattar som "omformulering av MIT-X11").
Sedan den senaste betydande versionen 1.1.0 har ett stort antal funktioner lagts till. Huvudsakliga Àndringar:
Widget för att lÀsa in strÀngar av godtycklig form kopplade till lÀsstrÀngar.
Subprocess-widget för att generera en subprocess, hantera den och strömma tillbaka dess resultat.
I Linux 5.3+ anvÀnds den nya mekanismen clone3+pidfd för att hantera processer utan race conditions.
Fdplane-widgeten för att strömma en godtycklig filbeskrivare till planet (dÀr subprocessen byggs). BÄda gör det möjligt för callbacks att styla eller pÄ annat sÀtt bearbeta text.
Rotation av plan och visuella effekter. Ladda visualiseringar frÄn minnet. Godtycklig RGBA/BGRx-blittning.
Menyn kan placeras pÄ vilket (eller pÄ bÄda) av de övre och nedre planen.
Stora förbÀttringar i Direct-lÀget.
Polyfills, gradienter och högkontrasttext.
Tetris har lagts till som exempel.
C++-wrapperar frÄn Marek Habersack har fÄtt möjlighet att kasta undantag (om sÄ behövs).
Python och Rust FFI har uppdaterats och testats.
Videodemonstration med kommentarer frÄn författaren.
Boken "Hacking The Planet! with Notcurses" av författaren.
KĂ€lla: linux.org.ru

