Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

70 total results found

Venturi Architecture

Internal architecture of the Venturi video editor: crates, data model, media/render/audio pipelines, application core, UI, concurrency and the MCP server. Developer-facing; not a user guide.

project
Venturi
type
architecture

1. Overview

Venturi Architecture

What Venturi is, the decisions that shape it, how the Cargo workspace is split into crates, and the vocabulary used in the rest of the book.

Workspace Map

Venturi Architecture 1. Overview

Venturi is a single Cargo workspace (edition 2024) of eight crates. Dependencies never point upwards: the data model knows nothing about media, the engines know nothing about each other, and the application core knows nothing about any UI. The GUI and the MCP ...

2. Data Model (vv-core)

Venturi Architecture

The project model, ids, keyframes, edits and undo, persistence and OTIO interchange.

3. Media Pipeline (vv-media)

Venturi Architecture

Probing, decoding with hardware acceleration, the frame cache, proxies, thumbnails, waveforms and encoding.

4. Rendering (vv-render)

Venturi Architecture

The wgpu compositor, text rendering and the GPU device shared with the UI.

5. Audio (vv-audio, vv-vad)

Venturi Architecture

The real-time mixer and effect chain, time-stretch, voiceover recording and voice activity detection.

6. Application Core (vv-session)

Venturi Architecture

The UI-free session shared by the editor and headless hosts: jobs, workers, frame provider and export.

7. Editor UI (vv-app)

Venturi Architecture

The egui application: frame loop, timeline, viewer and playback, panels, dialogs, settings and localisation.

8. Concurrency

Venturi Architecture

Which threads exist, what each one owns, and how data moves between them.

9. MCP Server (vv-mcp)

Venturi Architecture

How MCP tool calls reach a Session, headless and inside the editor, and the tool catalogue.

10. Build & Distribution

Venturi Architecture

Building from source, test conventions and packaging.

Goals & Scope

Venturi Architecture 1. Overview

Venturi is an editing-focused non-linear video editor (NLE) written in Rust. It does few things and aims to do them well: cutting, the transforms used while editing, correcting the color and finishing the sound in place. System context A single binary, vv-app...

Packaging

Venturi Architecture 10. Build & Distribution

Releases ship three files: an AppImage for Linux x86_64, one for Linux aarch64, and a dmg for Apple Silicon Macs. Each bundles its own FFmpeg, built from source. Release workflow scripts/release.sh 0.2.0 # bumps Cargo.toml/Cargo.lock, commits, tags gi...

Key Design Decisions

Venturi Architecture 1. Overview

The choices that shape the rest of the code. Each one is detailed in the chapter of the crate it belongs to. Platform and stack Decision Why Rust Mature media ecosystem, no GC pauses, memory safety while iterating fast (also with AI assistance). egui + eframe ...

Glossary

Venturi Architecture 1. Overview

Terms used throughout the book. Code names are given where they differ from the plain term. Model Term Meaning Project The whole document and single source of truth: media pool, timelines, folders, id counters. Saved as .vvproj (RON). Timeline A sequence with...

Building & Dependencies

Venturi Architecture 10. Build & Distribution

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, resampl...

Testing Conventions

Venturi Architecture 10. Build & Distribution

Where unit tests live Unit tests are not inline. They live in crates/<crate>/src/tests/, mirroring the source path, and each source file pulls its tests in as a child module so they still see private items: // in src/export.rs; tests in src/tests/export.rs #[...