Wydanie notcurses v1.4.1 — biblioteka do nowoczesnych interfejsów tekstowych.


Wydanie notcurses v1.4.1 — biblioteka do nowoczesnych interfejsów tekstowych.

Nowa wersja biblioteki notcurses v1.4.x "saga trwa! wu-tang! wu-tang!"

Notcurses to biblioteka TUI dla nowoczesnych emulatorów terminali. Dosłownie tłumacząc – nie przekleństwa (not curses). Została napisana w C, korzystając z nagłówków bezpiecznych dla C++. Dostępne są opakowania dla Rust, C++ i Python.

Czym to jest: biblioteka, która upraszcza złożone TUI w nowoczesnych emulatorach terminali, maksymalnie wspierająca jasne kolory i Unicode. Wiele zadań, które wcześniej realizowane były przez curses, może być wykonanych za pomocą notcurses (i odwrotnie).

Czym to nie jest: zgodną implementacją X/Open curses ani zamiennikiem ncurses w istniejących systemach.

Notcurses rezygnuje z API X/Open Curses, które dostarczane jest jako część Specyfikacji Single UNIX. Specyfikacja ta jest już przestarzała i na przykład nie obsługuje takiej funkcjonalności terminala jak nieindeksowany 24-bitowy kolor. W związku z tym notcurses nie jest zamiennikiem curses. Jest mniej przenośna i na pewno testowana na mniejszej liczbie sprzętu.
Gdy to możliwe, notcurses korzysta z biblioteki terminfo dostarczanej razem z ncurses, czerpiąc dużą korzyść z jej przenośności.
Notcurses otwiera rozwinięte możliwości interakcji z użytkownikami na stacjach roboczych, telefonach, laptopach i tabletach.

Dlaczego warto używać tej niestandardowej biblioteki?

  • Bezpieczeństwo wątków i efektywne wykorzystanie w programach wielowątkowych były od samego początku kwestią projektową.

  • Bardziej starannie opracowane API w porównaniu do X/Open:

    • Eksportowane identyfikatory mają prefiks, aby uniknąć kolizji w przestrzeniach nazw.

    • Obiektowy plik biblioteki eksportuje minimalny zestaw symboli. Tam, gdzie to możliwe, używane jest statyczne kodowanie tylko dla małych nagłówków. Ułatwia to optymalizację kompilatora i skraca czas ładowania.

  • Wszystkie API początkowo obsługują uniwersalny zestaw symboli (Unicode). API do komórek opiera się na koncepcji Rozszerzone grupy grapheme Unicode’a.

  • Możliwości wizualne, w tym obrazy, czcionki, wideo, tekst o wysokim kontraście, sprite'y i przezroczyste obszary. Wszystkie API natywnie wspierają 24-bitowy kolor, kwantowany w razie potrzeby dla terminala.

  • Licencja Apache2, w przeciwieństwie do dramatu w kilku aktach, które są licencją ncurses (ostatnia podsumowuje się jako "przekształcenie MIT-X11").

Od poprzedniego znaczącego wydania 1.1.0 dodano ogromną liczbę funkcji. Główne zmiany:

  • Widżet do wprowadzania ciągów dowolnej formy powiązany z ciągami do odczytu.

  • Widżet subprocess do generowania podprocesu, zarządzania nim i przesyłania jego wyników z powrotem.

  • W Linuxie 5.3+ zastosowano nowy mechanizm clone3+pidfd do zarządzania procesami bez warunków wyścigu.

  • Widżet Fdplane do przesyłania dowolnego deskryptora plików na płaszczyznę (na której zbudowano podproces). Oba pozwalają na stylizowanie lub w inny sposób przetwarzanie tekstu przez wywołania zwrotne.

  • Rotacja płaszczyzn i efektów wizualnych. Ładowanie wizualizacji z pamięci. Dowolne blitowanie RGBA/BGRx.

  • Menu można umieszczać na dowolnej (lub na obu) z górnych i dolnych płaszczyzn.

  • Ogromne ulepszenia w trybie Direct.

  • Polyfille, gradienty i tekst o wysokim kontraście.

  • Dodany tetris jako przykład.

  • Opakowania C++ od Marka Habersacka uzyskały możliwość zgłaszania wyjątków (jeśli to konieczne).

  • Python i Rust FFI zostały zaktualizowane i przetestowane.

Wideo demo z komentarzami autora.
Książka "Hacking The Planet! with Notcurses" autorstwa

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster