Skip to main content

Module plugins

Module plugins 

Source
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

Structs§

PluginInfo
PluginManager
PluginManifest

Enums§

Permission
PluginError
PluginType

Traits§

Plugin

Type Aliases§

PluginResult