Expand description
SubX: Intelligent Subtitle Processing Library
SubX is a comprehensive Rust library for intelligent subtitle file processing, featuring AI-powered matching, format conversion, audio synchronization, and advanced encoding detection capabilities.
§Key Features
- AI-Powered Matching: Intelligent subtitle file matching and renaming
- Format Conversion: Support for multiple subtitle formats (SRT, ASS, VTT, etc.)
- Audio Synchronization: Advanced audio-subtitle timing adjustment
- Encoding Detection: Automatic character encoding detection and conversion
- Parallel Processing: High-performance batch operations
- Configuration Management: Flexible multi-source configuration system
§Architecture Overview
The library is organized into several key modules:
cli
- Command-line interface and argument parsingcommands
- Implementation of all SubX commandsconfig
- Configuration management and validationcore
- Core processing engines (formats, matching, sync)error
- Comprehensive error handling systemservices
- External service integrations (AI, audio processing)
§Quick Start
use subx_cli::config::{TestConfigService, ConfigService};
// Create a configuration service
let config_service = TestConfigService::with_defaults();
let config = config_service.config();
// Use the configuration for processing...
§Error Handling
All operations return a Result<T>
type that wraps error::SubXError
:
use subx_cli::{Result, error::SubXError};
fn example_operation() -> Result<String> {
// This could fail with various error types
Err(SubXError::config("Missing configuration"))
}
§Configuration
SubX supports dependency injection-based configuration:
use subx_cli::config::{TestConfigService, Config};
// Create configuration service with AI settings
let config_service = TestConfigService::with_ai_settings("openai", "gpt-4.1");
let config = config_service.config();
// Access configuration values
println!("AI Provider: {}", config.ai.provider);
println!("AI Model: {}", config.ai.model);
§Performance Considerations
- Use
core::parallel
for batch operations on large file sets - Configure appropriate cache settings for repeated operations
- Consider memory usage when processing large audio files
§Thread Safety
The library is designed to be thread-safe where appropriate:
- Configuration manager uses
Arc<RwLock<T>>
for shared state - File operations include rollback capabilities for atomicity
- Parallel processing uses safe concurrency patterns
§Feature Flags
SubX supports several optional features:
- ai - AI service integrations (default)
- audio - Audio processing capabilities (default)
- parallel - Parallel processing support (default)
Re-exports§
pub use config::Config;
pub use config::ConfigService;
pub use config::EnvironmentProvider;
pub use config::ProductionConfigService;
pub use config::SystemEnvironmentProvider;
pub use config::TestConfigBuilder;
pub use config::TestConfigService;
pub use config::TestEnvironmentProvider;
Modules§
- cli
- Command-line interface for the SubX subtitle processing tool.
- commands
- SubX command execution module.
- config
- Configuration management module for SubX.
- core
- Core processing engine for SubX.
- error
- Comprehensive error types for the SubX CLI application operations.
- services
- External services integration for SubX.
Macros§
- create_
default_ test_ config_ service - Create a temporary test configuration service with default settings.
- create_
production_ config_ service_ with_ empty_ env - Create a ProductionConfigService with empty environment variables for testing.
- create_
production_ config_ service_ with_ env - Create a temporary ProductionConfigService with environment variable provider for test functions.
- create_
test_ config_ service - Create a temporary test configuration service for use in test functions.
- test_
production_ config_ with_ env - Execute ProductionConfigService tests with specified environment variable mapping.
- test_
production_ config_ with_ openai_ env - Execute ProductionConfigService tests with OPENAI environment variables.
- test_
with_ ai_ config - Run a test with specific AI configuration.
- test_
with_ ai_ config_ and_ key - Run a test with specific AI configuration including API key.
- test_
with_ config - Run a test with a custom configuration builder.
- test_
with_ default_ config - Run a test with the default configuration.
- test_
with_ parallel_ config - Run a test with specific parallel processing configuration.
- test_
with_ sync_ config - Run a test with specific sync configuration.
Structs§
- App
- Main application structure with dependency injection support.
Constants§
- VERSION
- Library version string.
Type Aliases§
- Result
- Convenient type alias for
Result<T, SubXError>
.