notcurses v1.4.1 har släppts - ett bibliotek för moderna textgränssnitt


notcurses v1.4.1 har släppts - ett bibliotek för moderna textgränssnitt

En ny version av notcurses v1.4.x-biblioteket har släppts "sagan fortsätter! Wu Tang! Wu Tang!"

Notcurses är ett TUI-bibliotek för moderna terminalemulatorer. Bokstavligen översatt – inte förbannelser. Det är skrivet i C, med C++-säkra rubriker. Omslag tillgängliga för Rust, C + + и Python.

Vad är det: ett bibliotek som förenklar komplexa TUI:er på moderna terminalemulatorer, som maximalt stöder ljusa färger och Unicode. Många uppgifter som delegerats till förbannelser kan utföras med hjälp av notcurses (och vice versa).

Vad det inte är: En kompatibel implementering av X/Open-förbannelser eller en ersättning för ncurses på befintliga system.

Notcurses fasar ut X/Open Curses API som tillhandahålls som en del av Single UNIX-specifikationen. Denna specifikation är sedan länge föråldrad och stöder till exempel inte terminalfunktioner som oindexerad 24-bitars färg. Som sådan är notcurses inte en ersättning för förbannelser. Den är mindre bärbar och definitivt testad på mindre hårdvara.
När det är möjligt använder notcurses terminfo-biblioteket som medföljer ncurses, vilket drar stor nytta av dess portabilitet.
Notcurses öppnar upp avancerad funktionalitet för att interagera med användare på arbetsstationer, telefoner, bärbara datorer och surfplattor.

Varför använda detta icke-standardiserade bibliotek?

  • Trådsäkerhet och effektiv användning i flertrådade program har varit ett designövervägande från första början.

  • Mer välformaterad API jämfört med X/Open:

    • Exporterade identifierare har prefix för att undvika namnområdeskollisioner.

    • Biblioteksobjektfilen exporterar en minimal uppsättning tecken. Där det är praktiskt används statisk kod endast för radhuvuden. Detta gör det lättare att optimera kompilatorn och minskar laddningstider.

  • Alla API:er stöder den universella teckenuppsättningen (Unicode). Cell API är baserat på konceptet Unicodes utökade grafemkluster.

  • Visuella funktioner inklusive bilder, typsnitt, videor, text med hög kontrast, sprites och genomskinliga områden. Alla API:er stöder naturligt 24-bitars färg, kvantifierade efter behov av terminalen.

  • Apache2-licens, till skillnad från drama i flera akter, vilket är ncurses-licensen (den senare sammanfattas som en "omformulering av MIT-X11").

Sedan den tidigare betydande utgåvan 1.1.0 har ett stort antal funktioner lagts till. Huvudändringar:

  • Läswidget för att ange strängar i fritt format kopplade till lässträngar

  • En delprocesswidget för att skapa en delprocess, hantera den och strömma dess resultat tillbaka.

  • Linux 5.3+ använder den nya clone3+pidfd-mekanismen för att hantera processer utan rasvillkor.

  • Fdplane-widget för att streama en godtycklig filbeskrivning till planet (på vilket underprocessen är byggd). Båda tillåter återuppringningar för att formatera eller på annat sätt manipulera text.

  • Rotation av plan och visuella effekter. Laddar visualiseringar från minnet. Slumpmässig RGBA/BGRx-blitning.

  • Menyn kan placeras på endera (eller båda) av det övre och nedre planet.

  • Stora förbättringar i direktläge.

  • Polyfills, gradienter och text med hög kontrast.

  • Lade till Tetris som exempel.

  • C++-omslag från Marek Habersack har nu möjlighet att kasta undantag (om det behövs).

  • Python och Rust FFI uppdaterade och testade.

Videodemo med författarens kommentarer
Boken "Hacking The Planet! med Notcourses" från författaren

Källa: linux.org.ru

Lägg en kommentar