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:
- Protocol Agnostic: Support multiple IPC protocols
- Security First: All communications are secured and permission-gated
- High Performance: Optimized for low-latency communication
- 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§
- Advanced
Features - Advanced experimental features.
- Common
- Common shared types and abstractions for IPC layer.
- Configuration
Bridge - 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.
- Status
Reporter - Status and metrics reporting.
- TauriIPC
Server_ Old - Main Tauri IPC server orchestrator.
- Wind
Advanced Sync - Wind UI framework synchronization.
- Wind
AirCommands - Legacy Wind Air Commands.
- Wind
Service Adapters - Legacy Wind Service Adapters.
- Wind
Service Handlers - Legacy Wind Service Handlers.