Expand description
Plugin system for extending VoiRS CLI functionality.
This module provides a secure, extensible plugin architecture that allows third-party developers to extend VoiRS with custom effects, voices, and processing capabilities. The system supports both native Rust plugins and WebAssembly-based plugins for security and portability.
§Features
- Secure Plugin Loading: Sandboxed execution with permission system
- Multiple Plugin Types: Effects, voices, processors, and extensions
- Plugin Discovery: Automatic discovery from standard directories
- API Versioning: Version compatibility checking for plugins
- Permission System: Granular control over plugin capabilities
- Error Handling: Comprehensive error reporting and recovery
§Plugin Types
- Effect Plugins: Audio processing effects (reverb, chorus, etc.)
- Voice Plugins: Custom voice models and synthesis engines
- Processor Plugins: Text processing and analysis tools
- Extension Plugins: General CLI functionality extensions
§Example
use voirs_cli::plugins::PluginManager;
let mut manager = PluginManager::new();
let plugins = manager.discover_plugins().await?;
for plugin in plugins {
println!("Found plugin: {} v{}", plugin.manifest.name, plugin.manifest.version);
if plugin.enabled {
manager.load_plugin(&plugin.manifest.name).await?;
}
}Modules§
- api
- Plugin API definitions and utilities for VoiRS CLI plugins.
- effects
- loader
- Plugin loading and dynamic library management.
- registry
- Plugin registry for managing installed plugins.
- voices