libghostty-vt は Ghostty から切り出した端末エミュレーションの C ライブラリで、1.0 でライブラリと C ABI が安定した。オブジェクトは不透明ハンドルで、値の読み書きは enum キーの getter と setter に集約する。新しいヘッダを古いライブラリへリンクした場合、未対応の値は GHOSTTY_UNSUPPORTED を返す。ELF ではエクスポートシンボルにバージョンが付き、不一致のライブラリは動的ローダが名前の段階で拒否する。

CI は Linux で libabigail、macOS と WebAssembly で型のマニフェストを照合する。非不透明の構造体はサイズを持ち、enum は int に固定する。

パッケージは Ghostty 本体と別のリリースサイクルで、署名付きソース tarball と、Zig パッケージを同梱した依存 tarball を出す。ビルドは共有ライブラリと静的ライブラリ、ヘッダ、pkg-config、CMake パッケージを入れ、--prefix、DESTDIR、lib64 を尊重する。実行時依存は libc のみ。SIMD を切ると freestanding でもビルドできる。ライセンスは MIT。simdutf と Google Highway は libc++ なしで組み込み、ディストリビューションはシステムライブラリへ差し替えできる。

Neovim は libvterm を libghostty-vt に置き換える pull request を承認済みで、タグ付きリリースを待っていた。JetBrains IDE のターミナルはすでに libghostty 上で動く。

#参考文献