新版本的 notcurses v1.4.x 庫已發布“傳奇仍在繼續!” 武堂! 武堂!”
Notcurses 是用於現代終端模擬器的 TUI 函式庫。 照字面意思翻譯——不是咒罵。 它是用 C 語言編寫的,使用 C++ 安全頭檔。 包裝可用於 銹, C + +中 и 蟒蛇.
它是什麼:一個簡化現代終端模擬器上複雜 TUI 的函式庫,最大限度地支援明亮的顏色和 Unicode。 許多委託給curses 的任務可以使用notcurses 來執行(反之亦然)。
它不是:X/Open Curses 的兼容實作或現有系統上 ncurses 的替代品。
Notcurses 不建議使用作為 Single UNIX 規範的一部分提供的 X/Open Curses API。 該規格早已過時,例如,不支援非索引 24 位元顏色等終端功能。 因此,notcurses 並不能取代curses。 它的便攜性較差,並且在較少的硬體上進行了測試。
只要有可能,notcurses 都會使用 ncurses 提供的 terminfo 庫,從而大大受益於其可移植性。
Notcurses 提供了與工作站、手機、筆記型電腦和平板電腦上的使用者互動的高級功能。
為什麼要使用這個非標準函式庫?
-
多線程程式中的線程安全和高效使用從一開始就是設計考慮的因素。
-
與 X/Open 相比,格式更良好的 API:
-
導出的標識符帶有前綴以避免命名空間衝突。
-
庫目標檔案匯出最小的字元集。 在實際情況下,靜態程式碼僅用於行標題。 這使得優化編譯器變得更加容易並減少載入時間。
-
-
所有 API 本身都支援通用字元集 (Unicode)。 Cell API 基於以下概念 Unicode 的擴展字素簇.
-
視覺功能包括圖像、字體、影片、高對比文字、精靈和透明區域。 所有 API 本身都支援 24 位元顏色,並根據終端需求進行量化。
-
Apache2 許可證,不同於 戲劇 在幾個行為中,這就是 ncurses 許可證(後者被概括為「MIT-X11 的重新制定」)。
自上一個重要版本 1.1.0 以來,添加了大量功能。 主要變化:
-
用於輸入連結到閱讀字串的自由格式字串的閱讀小部件
-
子流程小部件,用於產生子流程、管理子流程並將其結果流回。
-
Linux 5.3+使用新的clone3+pidfd機制來管理沒有競爭條件的進程。
-
Fdplane 小部件,用於將任意檔案描述子流式傳輸到平面(在其上建立子進程)。 兩者都允許回調來設定樣式或以其他方式操作文字。
-
平面的旋轉和視覺效果。 從記憶體載入可視化。 隨機 RGBA/BGRx 位元區塊傳送。
-
選單可以放置在頂部和底部平面中的一個(或兩個)上。
-
直接模式的重大改進。
-
Polyfill、漸層和高對比文字。
-
新增了俄羅斯方塊作為範例。
-
Marek Habersack 的 C++ 包裝器現在能夠拋出例外狀況(如果需要)。
-
Python 和 Rust FFI 已更新並經過測試。
帶有作者評論的視頻演示
《駭客攻擊地球!》一書與Notcourses”來自作者
來源: linux.org.ru