songbird-plugin-registry
Discovery, caching, and loading for stock plugins, external VST3/AU plugins, and custom ScriptFX.What it owns
- Plugin scan paths (
vst3_search_dirs,au_search_dirs). - Registry persistence (
PluginRegistry,PluginRegistryEntry). - Listing and loading entry points used by the sync engine and orchestration crates.
Public API
PluginRegistry,PluginRegistryEntry.scan_plugin_dirs,list_all_installed_plugins,load_plugin,populate_registry.
How it fits
Sits between the host (songbird-host-ffi), the in-tree plugins (songbird-plugins), and the state store (songbird-state). Used by songbird-app, songbird-headless, songbird-orchestrator, songbird-session.
⚠️ Plugin loading must happen on the Tauri dispatch thread. See AGENTS.md “Anti-patterns”.
Tests
cargo test -p songbird-plugin-registry. Behavioral contracts around missing plugins are in rust/crates/integration/songbird-host-ffi/SPEC.md.