Skip to main content

Module Entry

Module Entry 

Source
Expand description

Main application entry point and orchestration.

Contains the Fn() function which is the primary entry point for the Mountain

§Entry (Binary/Main)

§RESPONSIBILITIES

Main application entry point that orchestrates the complete application lifecycle. This function coordinates:

  • Tokio runtime creation and management
  • CLI argument parsing
  • Application state initialization
  • Tauri application builder setup
  • Service initialization (Vine, Cocoon, Configuration)
  • Graceful shutdown handling

§ARCHITECTURAL ROLE

The Entry module is the primary entry point in Mountain’s architecture:

main.rs ──► Binary::Main::Entry::Fn()
                                   │
                                   ▼
AppLifecycle ──► Service Initialization ──► Tauri App Run
                                          │
                                          ▼
                                  Graceful Shutdown

§KEY COMPONENTS

  • Fn(): Main entry point exported as Binary::Main::Fn()
  • Tokio runtime management
  • Application state initialization via StateBuild
  • Tauri builder configuration via TauriBuild
  • Service orchestration (Vine, Cocoon, Configuration)
  • Event-driven lifecycle management

§ERROR HANDLING

  • Panics on fatal errors (Tokio runtime failure, Tauri build failure)
  • Logs errors for service initialization failures
  • Graceful degradation for non-critical service failures

§LOGGING

Uses the TraceStep! macro for checkpoint logging at TRACE level. Additional logging at DEBUG, INFO, WARN, and ERROR levels throughout.

§PERFORMANCE CONSIDERATIONS

  • Tokio multi-threaded runtime for optimal performance
  • Asynchronous service initialization
  • Lazy initialization where possible

§TODO

  • Add crash recovery mechanism
  • Implement proper error dialog for startup failures
  • Add startup performance metrics

Macros§

TraceStep 🔒
Logs a checkpoint message at TRACE level.

Functions§

Fn
The main function that orchestrates the application lifecycle.