Expand description
§Binary Module
§RESPONSIBILITIES
Main entry point and initialization for the Mountain desktop application. This module handles application startup, Tauri command registration, configuration, and lifecycle management.
§Core Functions:
- Application Entry: Main application entry point
- Tauri Setup: Configure Tauri application builder
- Command Registration: Register all Tauri commands
- IPC Bridge: Set up IPC communication with frontend
- Service Initialization: Start Vine and Cocoon services
- Tray Management: Configure system tray
- Lifecycle: Handle application lifecycle events
§Architectural Role
The Binary module is the entry point in Mountain’s architecture:
main.rs ──► Binary::Main (Entry) ──► Build ──► Register ──► Initialize ──► Services
│ │ │ │
▼ ▼ ▼ ▼
AppLifecycle Commands Services Vine/Cocoon
│ │ │
IPCCommands IPCBridge ProcessMgmt§Design Principles:
- Single Entry Point: One clear entry point for the application
- Lazy Initialization: Services started only when needed
- Graceful Shutdown: Clean shutdown of all services
- Error Resilience: Graceful degradation on failures
§Key Components
- Main: Application entry point and orchestration
- Build: Tauri builder configuration
- Register: Command and service registration
- Service: Service initialization (Vine, Cocoon)
- Initialize: Application state initialization
- IPC: IPC command handlers (14 commands)
- Tray: System tray integration
- Extension: Extension startup
§TODOs
High Priority:
- Atomize Main.rs into submodules
- Add crash recovery mechanism
- Implement proper error dialog for startup failures
Medium Priority:
- Add startup performance metrics
- Implement incremental service startup
- Add service health checks during startup
Low Priority:
- Add startup progress indicator
- Implement startup animation
- Add startup sound
Re-exports§
pub use Entry::Fn as Main;pub use Build::LocalhostPlugin;pub use Build::LoggingPlugin;pub use Build::TauriBuild;pub use Build::WindowBuild;pub use Register::AdvancedFeaturesRegister;pub use Register::CommandRegister;pub use Register::IPCServerRegister;pub use Register::StatusReporterRegister;pub use Register::WindSyncRegister;pub use Service::CocoonStart;pub use Service::ConfigurationInitialize;pub use Service::VineStart;pub use Initialize::CliParse;pub use Initialize::LogLevel;pub use Initialize::PortSelector;pub use Initialize::RuntimeBuild;pub use Initialize::StateBuild;pub use Shutdown::RuntimeShutdown;pub use Shutdown::SchedulerShutdown;pub use AppLifecycle::*;
Modules§
- Build
- Tauri application builder configuration.
- Debug
- Debug and trace logging utilities.
- Extension
- Extension startup and management.
- IPC
- IPC command handlers (14 commands).
- Initialize
- Application state initialization.
- Main
- Main application entry point and orchestration.
- Register
- Command and service registration.
- Service
- Service initialization (Vine, Cocoon, Configuration).
- Shutdown
- Graceful shutdown handling.
- Tray
- System tray integration.
- Tray
Module