CLIツール
crossterm-rs/crossterm avatar
crossterm-rs/crossterm

crossterm-rs/crossterm:Rust製クロスプラットフォーム端末操作

クロスプラットフォームターミナルライブラリの錆び。 Windows 7 までのすべての UNIX および Windows 端末をサポートします (すべての端末がテストされているわけではありません。詳細については、「テスト済みの端末」を参照してください)。

スター 4,216フォーク 418RustMIT
GitHub

ひと目でわかる

これは何?
純Rust crate。カーソル、16/256/RGB色、イベント、raw/alternate screen。Windows 7以降、MIT。
誰に向いている?
Ratatui/Broot等TUIをRustで書く開発者向け。Cargo.tomlにcrossterm 0.29を追加し、READMEのexecute!色出力例をcargo runで再現。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 2 日前です。
何の言語で書かれている?
主に Rust です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

UNIXとWindows 7以降をカバーする純Rust crate

crossterm-rs/crosstermは、クロスプラットフォームなテキストベースUI向けの純Rust端末操作ライブラリです。READMEは全UNIX端末とWindows 7以降のWindows端末をサポートするとし、テスト済み端末リスト(Console Host Win10/8.1、Windows Terminal、GNOME Terminal、Kitty、Alacritty、macOS Monterey/Sonoma等)を参考提示。未テスト端末はissue/PRでリスト追加を歓迎。言語Rust、ライセンスMIT、約4200スター、最新0.29(2025-04-05)、docs.rs/crosstermがAPI参照先です。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。

カーソル・スタイル・端末・イベントの四領域

機能はREADMEで四塊に整理。カーソル:上下左右N移動、行移動、列移動、位置get/set、保存/復元、表示/非表示、点滅(端末依存)。スタイル:16基本色前景/背景、Win10+UNIXで256色/RGB、bold/italic/underline/crossed等。端末:全行/現在行クリア、スクロール、サイズget/set、alternate/raw screen、タイトル設定、折返し切替。イベント:キー/マウス/リサイズ、SHIFT|ALT|CTRL修飾、event-streamでfutures Stream、poll/read API。Send+Sync、出力バッファflush制御、is_ttyもREADMEに列挙。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。

Getting Startedのexecute!例

Cargo.toml依存:`crossterm = "0.27"`(README例、最新リリース0.29)。Rust例はexecute!マクロでSetForegroundColor(Color::Blue)、SetBackgroundColor(Color::Red)、Print、ResetColor。またはstdout().execute(...)チェーン。styleモジュールからColor、Print、ResetColor等をimport。サポートコマンド全一覧はdocs.rs/crossterm/latest/crossterm/index.html#supported-commands。examples/ディレクトリに高度例あり。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。

feature flagsと依存関係の削減

feature flags(README表):event-stream(futures::Stream<Result<Event>>)、serde(イベントシリアライズ)、events(デフォルト有効、入力読取)、filedescriptor(mioの代わりraw fd)、derive-more(is_*ヘルパー)、osc52(crossterm::clipboard)。依存表:bitflags、parking_lot常時、libc/mio/signal-hookはevents+UNIX、winapiはWindows、futures-coreはevent-stream、base64はosc52。READMEはevents無効またはfiledescriptor使用でmio/signal-hook依存削減可能と示唆。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。

Ratatui・Broot等の採用実績

Used By節:Broot、Cursive、Ratatui、Rust-sloth、Rusty-rain。各プロジェクトの具体的統合方法はREADMEに詳述なし。Ratatuiエコシステム選定時、crosstermは端末バックエンド候補の一つ。CONTRIBUTING.mdが貢献ガイド、著者Timon Post、MITライセンス全文がREADME末尾。Deprecated examples repositoryへのリンクもOther Resourcesにあり。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。

導入確認:色出力サンプルのcargo run

新規RustプロジェクトでCargo.tomlに`crossterm = "0.29"`を追加し、READMEのexecute!サンプルをmain.rsに貼り、`cargo run`でターミナルに青前景・赤背景テキストが出るか確認。CIでは対象端末(例:ubuntu-latestのGNOME Terminal相当)で同例を実行。event-streamが必要なTUIならfeatures = ["event-stream"]を追加し、cargo tree | grep mioで依存増加を確認。Windows 7ターゲットの場合はREADME Tested Terminalsに該当端末があるかをRelease notes 0.29と合わせて確認してください。

向く場面と制約

向く場面:Rust製CLI/TUI、Ratatuiと組み合わせたダッシュボード、Windows/macOS/Linux横断。向かない場面:GUIウィジェット、READMEが触れないネイティブ端末以外の描画、全端末での点滅/256色/RGB保証(READMEは端末差を明記)。純Rust方針のためCバインディング端末ライブラリより機能はREADME列挙範囲に限定。セキュリティ監査やサポートSLAはREADMEに記載なし。

osc52クリップボードとderive-more

osc52 featureはcrossterm::clipboardモジュールを有効化し、base64依存が付きます。derive-more feature(デフォルト含む)はイベント型にis_*ヘルパーを追加。serde featureはイベントのシリアライズ/デシリアライズ向け。filedescriptor featureはmioの代わりにraw filedescriptorでイベント待受し、極薄レイヤー構成を目指す利用者向け。README Dependency Justification表は各クレートの用途(bitflags=KeyModifiers、parking_lot=RwLock timeout等)を明示。Travisバッジ等レガシーCI表記がREADME上部に残る場合があり、現行CIはGitHub Actions等に移行している可能性はリポジトリworkflow確認が必要です。

編集部の結論

Ratatui/Broot等TUIをRustで書く開発者向け。Cargo.tomlにcrossterm 0.29を追加し、READMEのexecute!色出力例をcargo runで再現。events無効化でmio依存を減らすかはターゲット端末のevent-stream要件で判断。

公式情報源

  1. Official README
  2. Project repository
  3. Release notes
コミュニティノート

コミュニティノート