Architecture
System Overview
┌─────────────────────────────────────────────────────────────────┐
│ User Application │
└──────────────────────────────────┬──────────────────────────────┘
│
┌──────────────┴──────────────┐
│ lighty-launcher (Facade) │
│ - Prelude │
│ - Re-exports │
└──────────────┬──────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ lighty-core │ │ lighty-launch │ │ lighty-loaders│
│ - AppState │ │ - Launch │ │ - Vanilla │
│ - Extract │ │ - Installer │ │ - Fabric │
│ - Hash │ │ - Arguments │ │ - Quilt │
│ - Download │ │ - Instance │ │ - Forge │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼────────┐
│ lighty-auth │ │ lighty-java │ │ lighty-version │
│ - Offline │ │ - Temurin │ │ - Builder │
│ - Microsoft │ │ - GraalVM │ │ - Lighty │
│ - Azuriom │ │ - Zulu │ │ │
└───────────────┘ └───────────────┘ └────────────────┘
│ │
└────────────────────┬───────────────────────────────┘
│
┌──────▼──────┐
│ lighty-event│
│ - EventBus │
│ - Events │
└─────────────┘Module Dependencies
Core Modules
lighty-core
lighty-auth
lighty-event
lighty-java
lighty-loaders
lighty-version
lighty-launch
lighty-tauri
Data Flow
Launch Flow
Event Flow
Cache Flow
Design Patterns
1. Builder Pattern
2. Trait-Based Extensibility
3. Event-Driven Architecture
4. Singleton Pattern
5. Facade Pattern
Concurrency Model
Async/Await
Parallel Downloads
Background Tasks
Error Handling
Result Types
Error Propagation
Error Types
Platform Support
Cross-Platform Compatibility
Supported Platforms
Platform Detection
Performance Optimizations
1. Parallel Downloads
2. SHA1 Verification
3. Manifest Caching
4. Lazy Initialization
5. Streaming I/O
6. Batch Operations
Security Considerations
1. SHA1 Verification
2. HTTPS Only
3. No Credentials Storage
4. Sandboxed Execution
5. Input Validation
Testing Strategy
Unit Tests
Integration Tests
Example-Based Testing
Related Documentation
Crate Documentation
Last updated