libghostty 1.0リリース、JetBrains含む数百製品で稼働

原題: Libghostty 1.0

なぜ重要か

単一アプリのコア技術を汎用ライブラリ化することで、業界全体のターミナルエミュレーション品質を底上げする実例として注目される。

Mitchell Hashimotoが開発するターミナルエミュレーション用Cライブラリ「libghostty-vt 1.0」が2026年11月6日にリリースされた。ターミナルアプリ「Ghostty」のコアから抽出されたこのライブラリは、バージョン1.0到達によりC ABIの安定性が正式に保証された。JetBrainsの全IDE(12.5万以上のアクティブユーザー)や、Neovim、KDE、OrbStack、Vercelのツールなど数百製品がすでに本番環境で採用している。

libghostty-vt 1.0は、Ghosttyプロジェクトの中核から切り出された、ポータブルかつ高性能なターミナルエミュレーション向けCライブラリだ。Mitchell Hashimotoが2022年にGhosttyの開発を始めて以来、約1年半をかけて実用的なライブラリとして整備された。

採用実績はすでに広範囲に及ぶ。JetBrainsはIntelliJ、PyCharm、GoLandなど全IDE内部のターミナルをlibghosttyベースに移行済みで、JetBrains自身の報告によるアクティブユーザー数は1,250万人超。Neovimは長年使ってきたlibvtermをlibghosttyに置き換えるPull Requestが承認されており、今回のタグ付きリリースを待ってマージする見通しだ。この変更はリサイズ時のスクロールバック再フロー問題(10年来の未解決issue)も解消する。

ほかにもKDE(Konsole後継の実験)、Vercelのturborepo、devenv、OrbStack、Emacs向けのGhostelなどが採用済み。WASMビルドとしてXterm.js互換APIを提供するghostty-webも存在し、Rust、Go、JavaScript、Swift、Python、.NET、Elixir、Dart、Javaなど多数の言語向けコミュニティバインディングが整備されている。awesome-libghosttyリストには100件超のプロジェクトが登録されている。

1.0の核心はABI安定性の保証だ。全オブジェクトはopaqueハンドルとして扱われ、数百に上る値のアクセスはenum引数を持つgetter/setterの小さなセット経由で行われるため、新しい値の追加でシンボルを増やさずに済む。新しいヘッダーで古いlibghosttyをリンクした際は、クラッシュや未定義動作ではなく「GHOSTTY_UNSUPPORTED」が返される。enumはすべてのコンパイラでint固定、非opaqueな構造体にはサイズフィールドまたは予約パディングを設ける設計を採る。ABIポリシーの遵守はlibabigailを使ったCIで自動検証される。

出典

mitchellh.com — 元記事を読む →