Module IPC

Module IPC 

Source
Expand description

§IPC Module

§RESPONSIBILITIES

Inter-process communication (IPC) for the Mountain application, handling communication between the Tauri frontend and the Rust backend through various protocols including Tauri commands, WebSocket, and custom message formats.

§Core Functions:

  • Message Routing: Route IPC messages to appropriate handlers
  • Connection Management: Manage IPC connections with health monitoring
  • Security: Implement permission system for IPC access control
  • Encryption: Provide secure message channels and compression
  • Status Reporting: Report IPC system status and metrics
  • Configuration Bridge: Bridge configuration across IPC boundaries
  • Wind Sync: Advanced synchronization with Wind UI framework
  • Advanced Features: Experimental/advanced IPC features

§Architectural Role

The IPC module is the communication layer in Mountain’s architecture:

Sky (Frontend) ──► IPC (Communication) ──► Track (Dispatch) ──► Services
Wind (UI) ───────────────────────────────────────────────────────────────┘
Cocoon (Sidecar) ──► Vine (gRPC) ────────────────────────────┘

§Design Principles:

  1. Protocol Agnostic: Support multiple IPC protocols
  2. Security First: All communications are secured and permission-gated
  3. High Performance: Optimized for low-latency communication
  4. Observable: Comprehensive logging and metrics

§Key Components

  • TauriIPCServer: Main IPC server orchestrator
  • Message: Message types and routing
  • Connection: Connection management and health
  • Encryption: Message compression and secure channels
  • Security: Permission system
  • ConfigurationBridge: Configuration synchronization
  • StatusReporter: Status and metrics reporting
  • WindAdvancedSync: Wind framework integration
  • AdvancedFeatures: Advanced/experimental features

§TODOs

High Priority:

  • Add comprehensive unit tests for all modules
  • Implement connection pooling optimizations
  • Add connection timeout handling

Medium Priority:

  • Add message batching for efficiency
  • Implement keep-alive packets
  • Add connection retry logic

Low Priority:

  • Add message persistence for offline mode
  • Implement message compression ratio optimization
  • Add connection encryption rotation

Re-exports§

pub use Common::ConnectionStatus;
pub use Common::HealthStatus;
pub use Common::MessageType;
pub use Common::PerformanceMetrics;
pub use Common::ServiceInfo;
pub use Message::ListenerCallback;
pub use Message::SimpleConnectionStatus;
pub use Message::TauriIPCMessage;
pub use TauriIPCServer_Old as TauriIPCServer;
pub use Connection::ConnectionHandle;
pub use Connection::ConnectionManager;
pub use Connection::ConnectionStats;
pub use Connection::HealthChecker;
pub use Encryption::MessageCompressor::MessageCompressor;
pub use Encryption::SecureChannel::EncryptedMessage;
pub use Encryption::SecureChannel::SecureMessageChannel;
pub use Security::PermissionManager::PermissionManager;
pub use Security::PermissionManager::SecurityContext;
pub use Security::PermissionManager::SecurityEvent;
pub use Security::PermissionManager::SecurityEventType;
pub use Security::Role::Role;
pub use AdvancedFeatures::AdvancedFeatures as AdvancedFeatures_New;
pub use AdvancedFeatures::CachedMessage;
pub use AdvancedFeatures::CollaborationPermissions;
pub use AdvancedFeatures::CollaborationSession;
pub use AdvancedFeatures::MessageCache;
pub use AdvancedFeatures::PerformanceStats;
pub use AdvancedFeatures::initialize_advanced_features;
pub use ConfigurationBridge as ConfigurationBridge_New;
pub use StatusReporter as StatusReporter_New;
pub use WindAdvancedSync as WindAdvancedSync_New;
pub use StatusReporter::initialize_status_reporter;
pub use WindAdvancedSync::initialize_wind_advanced_sync;

Modules§

AdvancedFeatures
Advanced experimental features.
Common
Common shared types and abstractions for IPC layer.
ConfigurationBridge
Configuration synchronization bridge.
Connection
Connection management and health monitoring.
Encryption
Message compression and secure channels.
Enhanced
Legacy Enhanced subdirectory.
Message
Message types and routing.
Permission
Legacy Permission subdirectory.
Security
Permission system for IPC access control.
StatusReporter
Status and metrics reporting.
TauriIPCServer_Old
Main Tauri IPC server orchestrator.
WindAdvancedSync
Wind UI framework synchronization.
WindAirCommands
Legacy Wind Air Commands.
WindServiceAdapters
Legacy Wind Service Adapters.
WindServiceHandlers
Legacy Wind Service Handlers.