外部依存なしで、関数型のコンポーネント駆動スタイルを使ったターミナルUIを構築できる、ヘッダー形式のC++ライブラリです。
rivo/tview
ターミナルUIの構築に使える、フォーム、テーブル、ツリー、リスト、テキストエリアなどの対話型ウィジェットを備えたGoライブラリ。
- スター
- 14,143
- フォーク
- 695
- 未解決の Issue
- 106
- 最終コミット
- 2 か月前
これは何?
tviewは、ターミナルベースのユーザーインターフェースを構築するためのGoパッケージです。テキストフィールド、選択肢、チェックボックス、ボタンを備えた入力フォーム、キーボードで操作できる複数色のテキストビュー、編集可能なテキストエリア、テーブルビュー、ツリービュー、選択可能なリスト、モーダルメッセージウィンドウなど、よく使われるコンポーネントを提供します。
コンポーネントはgrid、flexbox、ページレイアウトを使って組み合わせられ、アプリケーションラッパーがイベントループを実行します。ウィジェットをカスタマイズしたり、独自のプリミティブを作成したりすることもできます。ターミナル処理にはtcellを、Unicodeテキストの幅の計算にはunisegを使用しています。
このプロジェクトでは、Kubernetes、データベース、クラウドサービスのクライアントなど、tviewで構築された多数のターミナルアプリケーションも紹介しており、さまざまなツールでの活用例がわかります。
主な機能
- 01テキストフィールド、ドロップダウン選択、チェックボックス、ボタンを備えた入力フォーム
- 02キーボード操作に対応したテーブル、ツリー、リストビュー
- 03編集可能な複数行テキストエリアと複数色のテキストビュー
- 04コンポーネントの配置に使えるgrid、flexbox、ページレイアウト
- 05モーダルメッセージウィンドウと、イベントループを実行するアプリケーションラッパー
- 06拡張可能:既存のウィジェットをカスタマイズしたり、独自のプリミティブを作成したりできます
ユースケース
- Goで対話型のターミナルダッシュボードや監視ツールを構築する
- テーブルを閲覧できる、データベース、クラウドサービス、API向けのCLIクライアントを作成する
- 入力検証やメニューが必要な、フォーム主体のターミナルユーティリティを作成する
クイックスタート
- 1
Goプロジェクトにパッケージを追加します
go get github.com/rivo/tview@master - 2
READMEのHello Worldの例を使ってGoファイルを作成し、実行します
使う前に知っておきたいこと
- Primitiveインターフェースの変更や上流のtcellの更新などにより、場合によっては後方互換性が損なわれることがあります。
トピック
よくある質問
- tview とは?
- ターミナルUIの構築に使える、フォーム、テーブル、ツリー、リスト、テキストエリアなどの対話型ウィジェットを備えたGoライブラリ。 tviewは、ターミナルベースのユーザーインターフェースを構築するためのGoパッケージです。テキストフィールド、選択肢、チェックボックス、ボタンを備えた入力フォーム、キーボードで操作できる複数色のテキストビュー、編集可能なテキストエリア、テーブルビュー、ツリービュー、選択可能なリスト、モーダルメッセージウィンドウなど、よく使われるコンポーネントを提供します。
- tview は無料で使えますか?ライセンスは?
- tview は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- tview は今もメンテナンスされていますか?
- 半年以内に更新あり。tview の最終コミットは 2026年8月11日 です。
- tview は何に使えますか?
- Goで対話型のターミナルダッシュボードや監視ツールを構築する テーブルを閲覧できる、データベース、クラウドサービス、API向けのCLIクライアントを作成する 入力検証やメニューが必要な、フォーム主体のターミナルユーティリティを作成する
- tview のインストール方法は?
- Goプロジェクトにパッケージを追加します: go get github.com/rivo/tview@master READMEのHello Worldの例を使ってGoファイルを作成し、実行します
- tview はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/rivo/tview
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ターミナルでカスタマイズ可能なダッシュボードやインタラクティブなウィジェットを構築する、クロスプラットフォーム対応のGoライブラリです。
The Elm Architectureのmodel-update-viewパターンを使ってターミナルUIを構築するためのGoフレームワークです。
シンプルで型安全なElm風のプログラミングモデルを備えた、Rust向けクロスプラットフォームGUIライブラリ。
シンプルなコンポーネントベースのAPIで、ターミナルとWebのUIを構築できるPythonフレームワーク。