# Oak Video Editor - Non-Linear Video Editor # Copyright (C) 2026 Oak Team # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . [package] name = "oakotio" version = "0.1.0" edition = "2021" description = "Oak Video Editor OpenTimelineIO binding crate: pure-Rust serde model of the OTIO JSON format used by project load/save (src/task/src/project/loadotio, saveotio)" license = "GPL-3.0-or-later" [lib] crate-type = ["rlib"] [dependencies] # serde + serde_json: JSON codec for the OTIO JSON format. The # `preserve_order` feature keeps Map insertion order so metadata and unknown # fields round-trip in file order, and a custom 4-space pretty formatter # reproduces the opentimelineio writer byte-for-byte. See README.md for the # rationale (no maintained pure-Rust OTIO crate exists on crates.io). serde = { version = "1", features = ["derive"] } serde_json = { version = "1", features = ["preserve_order"] } # Shared value types (Rational). Same path dependency the other bindings use. oakcore-rs = { path = "../oakcore" } # quick-xml: streaming XML codec for the FCPXML interchange layer # (src/fcpxml.rs). Same major version the other Rust modules use # (src/common/rust/Cargo.toml). quick-xml = "0.41.0" # Error trait derive for the crate error enum. thiserror = "2" [dev-dependencies] # oakcore-rs: exact Rational comparisons in the integration tests # (tests/fcpxml.rs). oakcore-rs = { path = "../oakcore" }