Module Binary

Module Binary 

Source
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:

  1. Single Entry Point: One clear entry point for the application
  2. Lazy Initialization: Services started only when needed
  3. Graceful Shutdown: Clean shutdown of all services
  4. 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.
TrayModule