Building & Dependencies
Full instructions live in docs/BUILDING.md; this page summarises what the build needs and why.
Build-time dependencies
| Dependency | Needed by |
|---|---|
| Rust ≥ 1.88 (edition 2024) | The whole workspace. |
FFmpeg dev libraries + pkg-config | ffmpeg-next: decode, encode, resample, rubberband. |
| clang / libclang | ffmpeg-next's bindgen. |
| Wayland/X11 + Vulkan | eframe/wgpu: window and GPU compositor. |
| ALSA | cpal: audio output and recording. |
On Fedora, ffmpeg-devel comes from RPM Fusion (free): Fedora's own FFmpeg lacks libx264, which is needed both to decode common H.264 sources and for export and proxies. CI uses Fedora 44 with RPM Fusion, the reference environment.
Build and run
cargo build -p vv-app # debug
cargo build -p vv-app --release # release
cargo run -p vv-app # editor window
cargo run -p vv-app -- mcp # headless MCP server
cargo run -p vv-app -- --mcp # window with MCP on
At runtime a Vulkan driver is required on Linux: without an adapter, wgpu cannot open the window. scripts/install-linux.sh installs the binary, .desktop file and icons into ~/.local (or /usr/local as root).
Build profiles
| Profile | Setting and reason |
|---|---|
dev | opt-level = 1, line-table debug info only: full debug info made every link slow. |
dev, dependencies | opt-level = 3: third-party crates are always built optimised. |
release | Thin LTO, one codegen unit. |
Headless container
container/ provides a Podman image (Fedora, Xvfb, software Vulkan via lavapipe) to build, run and screenshot vv-app without a real display or GPU. The repository is mounted at runtime, not copied into the image.
| Script | Use |
|---|---|
container/run.sh | One command in a throwaway container. |
container/session.sh | A persistent session: start the app, interact, screenshot. |
No comments to display
No comments to display