- ターミナル録画ツール asciinema CLI 3.0 が Rust で 全面的に書き直され、ファイル形式のアップグレード と ターミナルのライブストリーミング 機能が追加
- Rust 採用により 静的バイナリ の提供、高速な起動時間、AVT 統合による 並行処理・システムコール処理 の容易化、新機能実装の基盤を確保
- 新しい asciicast v3 フォーマットは、イベントの インターバル(デルタ)ベースのタイミング、
term 配下へのメタデータ構造化、"x" 終了イベント、# 行コメントを導入し、編集性と表現力を向上
- ライブターミナルストリーミング はローカル内蔵サーバーとリモートリレー(セルフホスト/公式サーバー)の2モードで提供され、ネットワーク状況に応じた 適応型バッファリング により滑らかな視聴体験を提供
- 基本哲学を Local-first として再整備し、
rec はファイル名を必須とし、アップロードを分離(upload <ファイル>)することで、セルフホスティングとの親和性 と 意図しないデータ流出の防止 を強化
3.0 リリース: Rust で書き直された asciinema CLI と主な改善点
- asciinema CLI 3.0 が正式にリリース
- 今回のバージョンでは コード全体が Rust に書き直され、同時に 録画ファイル形式もアップグレード
- ターミナルセッションのライブストリーミング など、さまざまな機能が追加・改善
Rust への書き直しと全体的な改善
- CLI を Rust で全面的に書き直し、開発者体験と保守性を高めるとともに、静的バイナリ 配布によってインストール経路を簡素化し、起動速度を向上、機能拡張性も確保
- システムコールと 並行処理 が Python と比べて容易だという作者の経験に基づいて選択され、asciinema virtual terminal (AVT) を CLI に統合したことで新機能の実装が可能になった
- その結果、性能・配布・アーキテクチャの面で 今後の機能追加の土台 を整備
asciicast v3 ファイル形式
- asciicast v3 ファイル形式へと進化し、従来の v2 で明らかになっていた複数の欠点を補完
- v2 の絶対タイムスタンプを 間隔(インターバル/デルタ)ベースのタイミング に置き換え、イベントの挿入・削除時に生じる 後続タイムスタンプの一括調整問題 を解消
- ヘッダーを再構成してターミナル関連メタデータを
term キー 配下にグループ化し、セッション終了状態の保存用に "x"(exit)イベント をサポート
- ファイル内の 行コメント(
#) を許可し、可読性と管理のしやすさを向上
- 例示スニペットにより、構造とイベントストリーム構成を直感的に提示
- 新フォーマットは asciinema server、asciinema player ですでにサポート済み
ライブターミナルストリーミング
- ローカルモード: 内蔵 HTTP サーバーにより同一ネットワーク内で視聴可能なストリームを提供し、データが視聴者のブラウザにのみ送られる プライバシー優先 モード
- CLI に最新の asciinema player がバンドルされており、すぐに再生可能。ファイアウォールでのポート開放が必要になる場合がある
- リモートモード: asciinema server(公式またはセルフホスト)をリレーとして使い、共有可能な URL でストリームを配信
- 2つのモードは 同時に 使用でき、状況に応じた配信構成が可能
- プレイヤーは リアルタイムのネットワーク遅延測定 に基づく 適応型バッファリング により、低遅延とバッファアンダーラン防止のバランスを取る
- サーバーは ストリームの自動録画 をサポートし、現在の asciinema.org 運用サーバーでは録画無効・同時 1 ストリーム制限 のポリシーを採用
- セルフホスト時はデフォルトで録画有効・同時ストリーム数の制限なし
Local-first への回帰
- 過去の
asciinema rec ではアップロード動作がデフォルト経路に含まれており、無意識の公開・情報流出 のリスクがあった
- 2.4 で アップロード前の確認プロンプト を導入して移行を準備し、3.0 では ファイル名必須、
rec から アップロード機能を削除、upload <ファイル> という 明示的なコマンド に分離
- 基本哲学を ローカル優先 として明確化し、ユーザーが意図を持って公開/共有を決められるようフローを再設計
- ローカル専用の利用が 完全にサポート され、必要なときだけ明示的に公開する
セルフホスティングとの親和性強化
upload / stream / auth を初めて使う際に サーバー URL 選択プロンプト を表示し、デフォルト値として asciinema.org を提示しつつ、ユーザーの意図に沿ったインスタンス選択 を保存
- 従来も設定ファイル/環境変数で指定できたが、対話的な環境(新規 VM・Dev コンテナなど) でより簡単に指定できるようになった
- これはセルフホスティングの使い勝手を高めると同時に、望まない外部アップロードの防止 という追加の安全装置としても機能
配布と利用案内
- 各ディストリビューションのパッケージリポジトリに反映されるまでには時間がかかる場合がある
- それまでの間は GNU/Linux・macOS 向けの事前ビルド済みバイナリ を GitHub Releases からダウンロードして使うか、ソースからビルド できる
- リリースノートと詳細な変更履歴は GitHub の release notes および CHANGELOG 文書で確認できる
まだコメントはありません。