Thank you for your interest in contributing to VEAC (Video Editing as Code)! This guide will help you get started.
- Rust toolchain (1.70 or later) — install via rustup
- FFmpeg — install via your system package manager (e.g.,
brew install ffmpegon macOS,apt install ffmpegon Debian/Ubuntu)
git clone https://github.com/yishuiliunian/VEAC.git
cd VEAC
cargo buildVEAC is organized as a Cargo workspace with four crates:
| Crate | Responsibility |
|---|---|
| veac-lang | Lexer → Parser → Semantic Analyzer → IR |
| veac-codegen | IR → FFmpeg CLI commands and filter graphs |
| veac-runtime | FFmpeg execution, media probing, progress tracking |
| veac-cli | CLI entry point (build, check, plan, fmt, probe) |
All code must pass formatting and lint checks before merging:
cargo fmt --all
cargo clippy --all-targets -- -D warningsPlease run both commands before submitting a pull request.
Run the full test suite with:
cargo test --allMake sure all tests pass before opening a pull request. When adding new functionality, include corresponding tests in the relevant tests/ directory.
- Fork the repository and clone your fork locally.
- Create a branch from
mainfor your change:git checkout -b my-feature
- Make your changes in small, focused commits with clear messages.
- Run checks before pushing:
cargo fmt --all cargo clippy --all-targets -- -D warnings cargo test --all - Push your branch and open a Pull Request against
main. - Respond to any review feedback and update your PR as needed.
When opening an issue, please include:
- A clear and descriptive title.
- Steps to reproduce the problem (including a minimal
.veacfile if applicable). - Expected behavior vs. actual behavior.
- Your environment details (OS, Rust version, FFmpeg version).
- Any relevant error messages or log output.
By contributing to VEAC, you agree that your contributions will be licensed under the MIT License.