How domica/caprust works
CapRust is a native, social-first video editor. A creator imports media into a project, arranges and edits clips on a multi-track timeline, previews the composition, and exports a rendered video. Core commands provide undoable mutations; media processing handles preview/export and documented local AI features, including captions, narration, auto-reframe, and background removal. The graph reflects the README’s crate boundaries and sampled entry points; some subsystem wiring is documented but its detailed call sites were not sampled.
Main entry points: app.rs Editor app · media_jobs.rs Media jobs · settings.rs Settings and models · main.rs App entry
Components 22
Desktop UI
- App entry
crates/app/src/main.rs - Editor app
crates/ui/src/app.rs - Timeline controls
crates/ui/src/timeline/mod.rs - Media panels
crates/ui/src/panels/media_bin.rs - Preview controls
crates/ui/src/panels/preview_window.rs - Export dialog
crates/ui/src/panels/export_dialog.rs - Media jobs
crates/ui/src/media_jobs.rs
Project Domain
- Project state
crates/core/src/project.rs - Clip model
crates/core/src/clip.rs - Undoable commands
crates/core/src/commands.rs - Project persistence
crates/core/src/project_io.rs - Media library
crates/core/src/media.rs
Media Processing
- Timeline preview
crates/media-io/src/preview_render.rs - Render plan
crates/media-io/src/export_graph.rs - Video export
crates/media-io/src/exporter.rs - Media probing
crates/media-io/src/ffprobe.rs - Local AI media
crates/media-io/src/whisper.rs
Supporting Services
- Settings and models
crates/core/src/settings.rs - Localization
crates/i18n/src/lib.rs
Other components
- Creator
- FFmpeg process
- Project files
Connections 28
- Creator → App entry: launches
- App entry → Editor app: starts
- Creator → Editor app: edits through
- Editor app → Timeline controls: renders
- Editor app → Media panels: renders
- Editor app → Preview controls: renders
- Editor app → Export dialog: renders
- Editor app → Project state: edits
- Editor app → Undoable commands: dispatches
- Undoable commands → Project state: mutates
- Editor app → Project persistence: loads and saves
- Project persistence → Project files: reads and writes
- Editor app → Media library: manages assets
- Media jobs → Media probing: probes media
- Media jobs → Local AI media: runs AI tasks
- Editor app → Media jobs: schedules
- Preview controls → Editor app: emits controls
- Editor app → Timeline preview: requests frames
- Export dialog → Editor app: emits settings
- Editor app → Render plan: builds render plan
- Render plan → Video export: supplies plan
- Timeline preview → FFmpeg process: spawns
- Video export → FFmpeg process: spawns
- Editor app → Settings and models: reads and updates
- Editor app → Localization: translates labels
- Settings and models → Project files: stores preferences
- Media jobs → Settings and models: uses model settings
- Local AI media → FFmpeg process: processes media