notcurses v1.4.x ライブラリの新しいバージョンがリリースされました。「物語は続く!」 ウータン! ウータン!"
Notcurses は、最新のターミナル エミュレーター用の TUI ライブラリです。 直訳すると呪いではありません。 これは C++ セーフ ヘッダーを使用して C で書かれています。 利用可能なラッパー さび, C + + и Python .
それは何ですか: 最新のターミナル エミュレーター上の複雑な 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ブリッティング。
-
メニューは、上面と下面のいずれか (または両方) に配置できます。
-
ダイレクトモードの大幅な改善。
-
ポリフィル、グラデーション、ハイコントラストのテキスト。
-
例としてテトリスを追加しました。
-
Marek Habersack の C++ ラッパーには、(必要に応じて) 例外をスローする機能が追加されました。
-
Python と Rust FFI が更新され、テストされました。
著者のコメント付きビデオデモ
著書『地球をハッキング! Notcourses 付き」著者より
出所: linux.org.ru