ターミナルUIの構築に使える、フォーム、テーブル、ツリー、リスト、テキストエリアなどの対話型ウィジェットを備えたGoライブラリ。
ArthurSonzogni/FTXUI
外部依存なしで、関数型のコンポーネント駆動スタイルを使ったターミナルUIを構築できる、ヘッダー形式のC++ライブラリです。
- スター
- 10,829
- フォーク
- 628
- 未解決の Issue
- 34
- 最終コミット
- 13 時間前
これは何?
FTXUIは、ターミナルUIを構築するためのC++ライブラリです。hbox、vbox、gridboxなどの関数を使って要素をツリー状に組み合わせ、レイアウトを記述してターミナルに描画できます。ボタン、メニュー、入力欄、スライダー、チェックボックス、ドロップダウンなどのインタラクティブなウィジェットは、キーボード、マウス、画面サイズ変更のイベントに応答するコンポーネントとして用意されています。
ライブラリは3つのモジュールで構成されています。screenは色や文字の低レベルな描画、domはレイアウトとスタイル、componentはユーザー操作とメインイベントループを担当します。UTF-8や全角文字、色、テキスト装飾、点字やブロック文字を使ったキャンバス描画、アニメーションに対応しています。依存関係はなく、CMake FetchContent、Bazel、Meson、vcpkg、Conan、または単一ヘッダーにまとめたビルドとして利用でき、C++20 modulesもサポートしています。対応プラットフォームはLinux、macOS、WebAssembly、Windowsです。
主な機能
- 01レイアウトやインタラクティブなウィジェットを組み立てる、関数型のコンポーネントベースAPI
- 02メニュー、入力欄、スライダーなどの組み込みウィジェットと、キーボード・マウスによる操作
- 03hbox、vbox、gridbox、flexboxを使った柔軟なレイアウト
- 04点字、ブロック文字、または単純な文字を使ったキャンバス描画
- 05外部依存なしでUTF-8と全角文字に対応
ユースケース
- メニュー、フォーム、ダッシュボードを備えたインタラクティブなCLIツールの構築
- ターミナルゲームや、アニメーション付きのテキストモード可視化の作成
- ターミナルサイズに合わせて表示を調整するシステムモニターやログビューアの作成
クイックスタート
- 1
READMEで推奨されている方法であるCMake FetchContentを使って、C++プロジェクトにFTXUIを追加します
- 2
ヘッダー <ftxui/ftxui.hpp> をインクルードし、CMakeターゲット ftxui::ftxui をリンクします
使う前に知っておきたいこと
- 主な対象はLinuxとmacOSです。Windowsのサポートはコントリビューターによって提供されています。
トピック
よくある質問
- FTXUI とは?
- 外部依存なしで、関数型のコンポーネント駆動スタイルを使ったターミナルUIを構築できる、ヘッダー形式のC++ライブラリです。 FTXUIは、ターミナルUIを構築するためのC++ライブラリです。hbox、vbox、gridboxなどの関数を使って要素をツリー状に組み合わせ、レイアウトを記述してターミナルに描画できます。ボタン、メニュー、入力欄、スライダー、チェックボックス、ドロップダウンなどのインタラクティブなウィジェットは、キーボード、マウス、画面サイズ変更のイベントに応答するコンポーネントとして用意されています。
- FTXUI は無料で使えますか?ライセンスは?
- FTXUI は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- FTXUI は今もメンテナンスされていますか?
- 活発にメンテナンス中。FTXUI の最終コミットは 2026年10月21日 です。
- FTXUI は何に使えますか?
- メニュー、フォーム、ダッシュボードを備えたインタラクティブなCLIツールの構築 ターミナルゲームや、アニメーション付きのテキストモード可視化の作成 ターミナルサイズに合わせて表示を調整するシステムモニターやログビューアの作成
- FTXUI のインストール方法は?
- READMEで推奨されている方法であるCMake FetchContentを使って、C++プロジェクトにFTXUIを追加します ヘッダー <ftxui/ftxui.hpp> をインクルードし、CMakeターゲット ftxui::ftxui をリンクします
- FTXUI はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ArthurSonzogni/FTXUI
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
シンプルなコンポーネントベースのAPIで、ターミナルとWebのUIを構築できるPythonフレームワーク。
シェルがアイドル状態になると起動し、アニメーションを表示するGo製ターミナルスクリーンセーバー。
ターミナルでカスタマイズ可能なダッシュボードやインタラクティブなウィジェットを構築する、クロスプラットフォーム対応のGoライブラリです。