pub mod core;
pub mod communication;
pub mod services;
pub mod security;
pub mod data;
mod internal;
pub mod build;
pub use crate::communication::ipc_types::{Endpoint as AnnouncedEndpoint, Announce as ModuleAnnounce, Init as OrchestratorInit};
pub use crate::core::bootstrap::{BootstrapError, bootstrap_module};
pub use crate::core::error::{Error, Result};
pub use crate::core::state::AppState;
pub use crate::services::announce::{AnnounceError, send_announce};
pub use crate::security::handshake::{InitError, read_init};
pub use crate::services::server::serve_module;
pub use crate::core::bootstrap;
pub use crate::core::error;
pub use crate::core::state;
pub use crate::core::config;
pub use crate::core::logging;
pub use crate::communication::message;
pub use crate::communication::tcp_channel;
pub use crate::communication::tcp_types;
#[cfg(feature = "ipc_channel")]
pub use crate::communication::ipc;
pub use crate::communication::ipc_types;
pub use crate::communication::http_ipc;
pub use crate::communication::http_tcp;
pub use crate::communication::{MessageChannel, TcpChannel};
pub use crate::services::registration;
pub use crate::services::announce;
pub use crate::services::model_manager;
pub use crate::services::server;
pub use crate::security::secrets;
pub use crate::security::secret_client;
pub use crate::security::secret_provider;
#[cfg(feature = "jwt_auth")]
pub use crate::security::jwt_auth;
pub use crate::security::handshake;
pub use crate::security::secrets::typed_secret;
#[cfg(feature = "database")]
pub use crate::data::database;
#[cfg(feature = "cache")]
pub use crate::data::cache;
pub use crate::internal::builder;
pub use crate::internal::ext;
pub use crate::internal::internal_messaging;
pub use crate::internal::macros;
pub use crate::internal::utils;
#[cfg(feature = "proc_macros")]
pub use crate::internal::macros::module;
#[cfg(feature = "proc_macros")]
pub mod pywatt {
pub use crate::internal::macros::module;
}
pub mod prelude {
pub use crate::bootstrap_module;
pub use crate::core::error::{Error, Result};
pub use crate::core::state::AppState;
pub use crate::core::logging::init_module;
pub use crate::build::{BuildInfo, get_build_info};
pub use crate::communication::message::{
EncodedMessage, EncodedStream, EncodingFormat, Message,
MessageError, MessageMetadata, MessageResult,
};
pub use crate::communication::{MessageChannel, TcpChannel};
pub use crate::communication::tcp_types::{
ConnectionConfig, ConnectionState, NetworkError,
NetworkResult, ReconnectPolicy, TlsConfig,
};
pub use crate::communication::ipc_types::{
ListenAddress, ModuleToOrchestrator, OrchestratorToModule,
ServiceType, ServiceProviderInfo,
};
#[cfg(feature = "ipc_channel")]
pub use crate::communication::ipc::process_ipc_messages;
#[cfg(feature = "ipc_channel")]
pub use crate::communication::ipc::IpcManager;
pub use crate::communication::http_ipc::{
ApiResponse, HttpIpcRouter, error_response, json_response,
not_found, parse_json_body, success,
};
#[cfg(feature = "ipc_channel")]
pub use crate::communication::http_ipc::{
send_http_response, subscribe_http_requests,
};
pub use crate::communication::http_tcp::{
ApiResponse as HttpTcpApiResponse, HttpTcpClient, HttpTcpRequest,
HttpTcpResponse, HttpTcpRouter, serve as serve_http_tcp,
};
pub use crate::services::registration::{
Capabilities, Endpoint, HealthStatus, ModuleInfo, RegisteredModule,
RegistrationError, advertise_capabilities, heartbeat, register_module,
start_heartbeat_loop, unregister_module,
};
pub use crate::services::announce::{AnnounceError, send_announce};
pub use crate::services::server::{serve_module, ServeOptions, serve_module_full, serve_module_with_lifecycle};
pub use crate::security::handshake::{InitError, read_init};
pub use crate::security::secrets::{
get_module_secret_client, get_secret, get_secrets,
subscribe_secret_rotations,
};
pub use crate::security::secrets::typed_secret::{Secret, TypedSecretError, get_typed_secret};
pub use crate::security::secret_client::{SecretClient, SecretError, RequestMode};
#[cfg(feature = "database")]
pub use crate::data::database::{
DatabaseConfig, DatabaseConnection, DatabaseError, DatabaseResult,
DatabaseRow, DatabaseTransaction, DatabaseType, DatabaseValue,
create_database_connection,
};
#[cfg(feature = "cache")]
pub use crate::data::cache::{
CacheConfig, CacheError, CacheResult, CacheService, CacheStats,
CacheType, create_cache_service,
};
#[cfg(feature = "jwt_auth")]
pub use crate::security::jwt_auth::{JwtAuthLayer, RouterJwtExt};
pub use crate::{AnnouncedEndpoint, ModuleAnnounce, OrchestratorInit};
#[cfg(feature = "proc_macros")]
pub use crate::module;
pub use crate::{ChannelPreferences, SecurityLevel};
}
#[derive(Debug, Clone)]
pub struct ChannelPreferences {
pub use_tcp: bool,
pub use_ipc: bool,
pub prefer_ipc_for_local: bool,
pub prefer_tcp_for_remote: bool,
}
#[derive(Debug, Clone)]
pub enum SecurityLevel {
Low,
Medium,
High,
}