動画編集ソフト向けの差分・バージョン管理ライブラリ。
編集操作のメタ情報(文字列・数値)のみを差分として記録し、git ライクなコミット・ブランチ・マージ・リベースを提供する。動画・音声ファイルなどのバイナリは一切扱わない。
- サブモジュール単位のブランチ管理 — クリップ・エフェクト・トランジションなど、編集要素ごとに独立したバージョン履歴を持つ
- 差分ベースの状態管理 — 全状態のスナップショットではなく、変更差分(set/remove)のチェーンで履歴を表現する
- 三方向マージとリベース — 共通祖先からの差分比較によるコンフリクト検出、Fast-Forward 対応
- アトミック書き込み — tmp→rename パターンによるクラッシュセーフなファイル永続化
- FFI 対応ビルド —
staticlib/cdylibとして C++ から呼び出し可能
| 用途 | 採用技術 |
|---|---|
| 言語 | Rust (edition 2021) |
| シリアライズ | serde + rmp-serde (MessagePack) |
| テスト | cargo test + proptest |
| デバッグ出力 | serde_json |
設計思想やアーキテクチャの詳細は docs/ を参照。
| ドキュメント | 内容 |
|---|---|
| アーキテクチャ | 全体構成、レイヤー構造、データフロー |
| コア概念 | コミット・差分・サブモジュール・グローバルタイムラインの考え方 |
| ブランチ操作 | ブランチ・マージ・リベースの動作仕様 |
| ストレージ | ファイル配置、永続化戦略、アトミック書き込み |
cargo build
cargo test
cargo clippy -- -D warningsGPL-3.0