pub mod core;
pub mod fs;
pub mod log;
pub mod config;
pub mod hooks;
pub mod observability;
pub mod device;
pub mod cache;
pub mod queue;
pub mod gateway;
pub mod service_mesh;
pub mod auth;
pub mod database;
#[cfg(feature = "protocol")]
pub mod protocol;
pub mod validation;
pub mod module_rpc;
#[cfg(feature = "grpc")]
pub mod grpc;
#[cfg(feature = "websocket")]
pub mod ws;
#[cfg(feature = "c")]
pub mod c;
#[cfg(feature = "java")]
pub mod java;
pub mod prelude {
pub use crate::core::{RiAppBuilder, RiAppRuntime};
pub use crate::core::RiServiceContext;
pub use crate::core::RiModule;
pub use crate::core::RiError;
pub use crate::core::RiResult;
#[cfg(feature = "pyo3")]
pub use crate::core::RiLockError;
#[cfg(feature = "pyo3")]
pub use crate::core::{RiPythonModule, RiPythonModuleAdapter, RiPythonServiceModule, RiPythonAsyncServiceModule};
#[cfg(feature = "pyo3")]
pub use crate::core::{RiErrorChain, RiErrorChainIter, RiErrorContext, RiOptionErrorContext};
#[cfg(feature = "pyo3")]
pub use crate::core::{RiHealthStatus, RiHealthCheckResult, RiHealthCheckConfig, RiHealthReport};
#[cfg(feature = "pyo3")]
pub use crate::service_mesh::health_check::{RiHealthCheckType, RiHealthSummary, RiHealthChecker};
#[cfg(feature = "pyo3")]
pub use crate::core::RiLifecycleObserver;
#[cfg(feature = "pyo3")]
pub use crate::core::RiLogAnalyticsModule;
pub use crate::fs::RiFileSystem;
pub use crate::log::RiLogger;
pub use crate::log::RiLogConfig;
pub use crate::log::RiLogLevel;
pub use crate::config::RiConfig;
pub use crate::config::RiConfigManager;
pub use crate::hooks::RiHookBus;
pub use crate::hooks::RiHookEvent;
pub use crate::hooks::RiHookKind;
pub use crate::hooks::RiModulePhase;
pub use crate::cache::RiCacheModule;
pub use crate::cache::RiCacheConfig;
pub use crate::queue::RiQueueModule;
pub use crate::queue::RiQueueConfig;
pub use crate::gateway::RiGateway;
pub use crate::gateway::RiGatewayConfig;
pub use crate::gateway::RiRoute;
pub use crate::gateway::RiRouter;
pub use crate::gateway::load_balancer::RiBackendServer;
pub use crate::gateway::load_balancer::RiLoadBalancerServerStats;
pub use crate::gateway::load_balancer::RiLoadBalancer;
pub use crate::gateway::load_balancer::RiLoadBalancerStrategy;
pub use crate::device::RiDeviceControlModule;
pub use crate::device::RiDeviceControlConfig;
pub use crate::device::RiDeviceSchedulingConfig;
pub use crate::device::RiDevice;
pub use crate::device::RiDeviceType;
pub use crate::auth::RiAuthModule;
pub use crate::auth::RiAuthConfig;
pub use crate::service_mesh::RiServiceMesh;
pub use crate::service_mesh::RiServiceMeshConfig;
pub use crate::service_mesh::RiServiceMeshStats;
pub use crate::service_mesh::RiServiceEndpoint;
pub use crate::service_mesh::RiServiceHealthStatus;
pub use crate::observability::RiObservabilityModule;
pub use crate::observability::RiObservabilityConfig;
pub use crate::observability::RiTracer;
pub use crate::observability::RiMetricsRegistry;
pub use crate::database::RiDatabaseConfig;
pub use crate::database::DatabaseType;
pub use crate::database::RiDatabasePool;
pub use crate::database::RiDBRow;
pub use crate::database::RiDBResult;
pub use crate::module_rpc::RiModuleRPC;
pub use crate::module_rpc::RiModuleClient;
pub use crate::module_rpc::RiModuleEndpoint;
pub use crate::module_rpc::RiMethodCall;
pub use crate::module_rpc::RiMethodResponse;
}
#[cfg(feature = "pyo3")]
pub mod py {
use pyo3::prelude::*;
use pyo3::types::PyModule;
use crate::prelude::*;
#[pymodule]
pub fn ri(m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_class::<RiAppBuilder>()?;
m.add_class::<RiAppRuntime>()?;
m.add_class::<RiConfig>()?;
m.add_class::<RiConfigManager>()?;
m.add_class::<RiError>()?;
m.add_class::<RiServiceContext>()?;
m.add_class::<crate::core::module::RiPythonModule>()?;
m.add_class::<crate::core::module::RiPythonModuleAdapter>()?;
m.add_class::<crate::core::module::RiPythonServiceModule>()?;
m.add_class::<crate::core::module::RiPythonAsyncServiceModule>()?;
m.add_class::<RiLogger>()?;
m.add_class::<RiLogConfig>()?;
m.add_class::<RiLogLevel>()?;
m.add_class::<RiFileSystem>()?;
m.add_class::<RiHookBus>()?;
m.add_class::<RiHookEvent>()?;
m.add_class::<RiHookKind>()?;
m.add_class::<RiModulePhase>()?;
m.add_class::<crate::core::RiLockError>()?;
m.add_class::<crate::core::RiHealthStatus>()?;
m.add_class::<crate::core::RiHealthCheckResult>()?;
m.add_class::<crate::core::RiHealthCheckConfig>()?;
m.add_class::<crate::core::RiHealthReport>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
m.add_class::<crate::core::RiLifecycleObserver>()?;
m.add_class::<crate::core::RiLogAnalyticsModule>()?;
m.add_class::<crate::cache::RiCacheModule>()?;
m.add_class::<crate::cache::RiCacheManager>()?;
m.add_class::<crate::cache::RiCacheConfig>()?;
m.add_class::<crate::cache::RiCacheBackendType>()?;
m.add_class::<crate::cache::RiCachePolicy>()?;
m.add_class::<crate::cache::RiCacheStats>()?;
m.add_class::<crate::cache::RiCachedValue>()?;
m.add_class::<crate::cache::RiCacheEvent>()?;
m.add_class::<crate::queue::RiQueueModule>()?;
m.add_class::<crate::queue::RiQueueConfig>()?;
m.add_class::<crate::queue::RiQueueManager>()?;
m.add_class::<crate::queue::RiQueueMessage>()?;
m.add_class::<crate::queue::RiQueueStats>()?;
m.add_class::<crate::queue::RiQueueBackendType>()?;
m.add_class::<crate::queue::RiRetryPolicy>()?;
m.add_class::<crate::queue::RiDeadLetterConfig>()?;
m.add_class::<crate::gateway::RiGateway>()?;
m.add_class::<crate::gateway::RiGatewayConfig>()?;
m.add_class::<crate::gateway::RiRouter>()?;
m.add_class::<crate::gateway::RiRoute>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
m.add_class::<crate::service_mesh::RiServiceMesh>()?;
m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
m.add_class::<crate::service_mesh::RiServiceInstance>()?;
m.add_class::<crate::service_mesh::RiServiceStatus>()?;
m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
m.add_class::<crate::service_mesh::RiTrafficRoute>()?;
m.add_class::<crate::service_mesh::RiMatchCriteria>()?;
m.add_class::<crate::service_mesh::RiRouteAction>()?;
m.add_class::<crate::service_mesh::RiWeightedDestination>()?;
m.add_class::<crate::auth::RiAuthModule>()?;
m.add_class::<crate::auth::RiAuthConfig>()?;
m.add_class::<crate::auth::RiJWTManager>()?;
m.add_class::<crate::auth::RiJWTClaims>()?;
m.add_class::<crate::auth::RiJWTValidationOptions>()?;
m.add_class::<crate::auth::RiSessionManager>()?;
m.add_class::<crate::auth::RiSession>()?;
m.add_class::<crate::auth::RiPermissionManager>()?;
m.add_class::<crate::auth::RiOAuthManager>()?;
m.add_class::<crate::auth::RiOAuthToken>()?;
m.add_class::<crate::auth::RiOAuthUserInfo>()?;
m.add_class::<crate::auth::RiOAuthProvider>()?;
m.add_class::<crate::auth::RiPermission>()?;
m.add_class::<crate::auth::RiRole>()?;
m.add_class::<crate::auth::RiJWTRevocationList>()?;
m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
m.add_class::<crate::auth::RiSecurityManager>()?;
m.add_class::<crate::observability::RiObservabilityModule>()?;
m.add_class::<crate::observability::RiObservabilityConfig>()?;
m.add_class::<crate::observability::RiMetricsRegistry>()?;
m.add_class::<crate::observability::RiTracer>()?;
m.add_class::<crate::observability::RiMetricType>()?;
m.add_class::<crate::observability::RiMetricConfig>()?;
m.add_class::<crate::observability::RiMetricSample>()?;
m.add_class::<crate::observability::RiMetric>()?;
m.add_class::<crate::observability::RiObservabilityData>()?;
#[cfg(feature = "system_info")]
{
m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
m.add_class::<crate::observability::RiSystemMetrics>()?;
m.add_class::<crate::observability::RiCPUMetrics>()?;
m.add_class::<crate::observability::RiMemoryMetrics>()?;
m.add_class::<crate::observability::RiDiskMetrics>()?;
m.add_class::<crate::observability::RiNetworkMetrics>()?;
}
m.add_class::<crate::validation::RiValidationError>()?;
m.add_class::<crate::validation::RiValidationResult>()?;
m.add_class::<crate::validation::RiValidationSeverity>()?;
m.add_class::<crate::validation::RiValidatorBuilder>()?;
m.add_class::<crate::validation::RiValidationRunner>()?;
m.add_class::<crate::validation::RiSanitizer>()?;
m.add_class::<crate::validation::RiSanitizationConfig>()?;
m.add_class::<crate::validation::RiSchemaValidator>()?;
m.add_class::<crate::validation::RiValidationModule>()?;
#[cfg(feature = "protocol")]
{
m.add_class::<crate::protocol::RiProtocolManager>()?;
m.add_class::<crate::protocol::RiProtocolType>()?;
m.add_class::<crate::protocol::RiProtocolConfig>()?;
m.add_class::<crate::protocol::RiProtocolStatus>()?;
m.add_class::<crate::protocol::RiProtocolStats>()?;
m.add_class::<crate::protocol::RiConnectionState>()?;
m.add_class::<crate::protocol::RiConnectionStats>()?;
m.add_class::<crate::protocol::RiProtocolHealth>()?;
m.add_class::<crate::protocol::RiFrame>()?;
m.add_class::<crate::protocol::RiFrameHeader>()?;
m.add_class::<crate::protocol::RiFrameType>()?;
m.add_class::<crate::protocol::RiConnectionInfo>()?;
m.add_class::<crate::protocol::RiMessageFlags>()?;
m.add_class::<crate::protocol::RiSecurityLevel>()?;
m.add_class::<crate::protocol::frames::RiFrameParser>()?;
m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
}
m.add_class::<crate::database::RiDatabaseConfig>()?;
m.add_class::<crate::database::RiDatabasePool>()?;
m.add_class::<crate::database::RiDBRow>()?;
m.add_class::<crate::database::RiDBResult>()?;
m.add_class::<crate::database::orm::RiPyORMRepository>()?;
m.add_class::<crate::database::RiDynamicPoolConfig>()?;
m.add_class::<crate::database::RiDatabaseMetrics>()?;
#[cfg(all(feature = "grpc", feature = "pyo3"))]
{
m.add_class::<crate::grpc::RiGrpcConfig>()?;
m.add_class::<crate::grpc::RiGrpcStats>()?;
m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
m.add_class::<crate::grpc::RiGrpcServerPy>()?;
m.add_class::<crate::grpc::RiGrpcClientPy>()?;
}
#[cfg(all(feature = "websocket", feature = "pyo3"))]
{
m.add_class::<crate::ws::RiWSServerConfig>()?;
m.add_class::<crate::ws::RiWSEvent>()?;
m.add_class::<crate::ws::RiWSSessionInfo>()?;
m.add_class::<crate::ws::RiWSServerStats>()?;
m.add_class::<crate::ws::RiWSPythonHandler>()?;
m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
m.add_class::<crate::ws::RiWSServerPy>()?;
m.add_class::<crate::ws::RiWSClientConfig>()?;
m.add_class::<crate::ws::RiWSClientStats>()?;
m.add_class::<crate::ws::RiWSClientPy>()?;
}
m.add_class::<crate::module_rpc::RiModuleRPC>()?;
m.add_class::<crate::module_rpc::RiModuleClient>()?;
m.add_class::<crate::module_rpc::RiModuleEndpoint>()?;
m.add_class::<crate::module_rpc::RiMethodCall>()?;
m.add_class::<crate::module_rpc::RiMethodResponse>()?;
m.add_class::<crate::device::RiDeviceControlModule>()?;
m.add_class::<crate::device::RiDevice>()?;
m.add_class::<crate::device::RiDeviceType>()?;
m.add_class::<crate::device::RiDeviceStatus>()?;
m.add_class::<crate::device::RiDeviceCapabilities>()?;
m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
m.add_class::<crate::device::RiDeviceController>()?;
m.add_class::<crate::device::RiDeviceConfig>()?;
m.add_class::<crate::device::RiDeviceControlConfig>()?;
m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
m.add_class::<crate::device::RiDiscoveryResult>()?;
m.add_class::<crate::device::RiResourceRequest>()?;
m.add_class::<crate::device::RiResourceAllocation>()?;
m.add_class::<crate::device::RiRequestSlaClass>()?;
m.add_class::<crate::device::RiResourceWeights>()?;
m.add_class::<crate::device::RiAffinityRules>()?;
m.add_class::<crate::device::RiResourcePoolStatus>()?;
m.add_class::<crate::device::pool::RiResourcePool>()?;
m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
m.add_class::<crate::database::RiDatabaseMigration>()?;
create_device_module(m)?;
create_cache_module(m)?;
create_fs_module(m)?;
create_hooks_module(m)?;
create_observability_module(m)?;
create_queue_module(m)?;
create_gateway_module(m)?;
create_service_mesh_module(m)?;
create_auth_module(m)?;
create_database_module(m)?;
create_validation_module(m)?;
#[cfg(feature = "protocol")]
create_protocol_module(m)?;
create_grpc_module(m)?;
create_ws_module(m)?;
Ok(())
}
fn create_device_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "device")?;
m.add_class::<crate::device::RiDeviceControlModule>()?;
m.add_class::<crate::device::RiDevice>()?;
m.add_class::<crate::device::RiDeviceType>()?;
m.add_class::<crate::device::RiDeviceStatus>()?;
m.add_class::<crate::device::RiDeviceCapabilities>()?;
m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
m.add_class::<crate::device::RiDeviceController>()?;
m.add_class::<crate::device::RiDeviceConfig>()?;
m.add_class::<crate::device::RiDeviceControlConfig>()?;
m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
m.add_class::<crate::device::RiDiscoveryResult>()?;
m.add_class::<crate::device::RiResourceRequest>()?;
m.add_class::<crate::device::RiResourceAllocation>()?;
m.add_class::<crate::device::RiRequestSlaClass>()?;
m.add_class::<crate::device::RiResourceWeights>()?;
m.add_class::<crate::device::RiAffinityRules>()?;
m.add_class::<crate::device::pool::RiResourcePool>()?;
m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_cache_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "cache")?;
m.add_class::<crate::cache::RiCacheModule>()?;
m.add_class::<crate::cache::RiCacheManager>()?;
m.add_class::<crate::cache::RiCacheConfig>()?;
m.add_class::<crate::cache::RiCacheBackendType>()?;
m.add_class::<crate::cache::RiCachePolicy>()?;
m.add_class::<crate::cache::RiCacheStats>()?;
m.add_class::<crate::cache::RiCachedValue>()?;
m.add_class::<crate::cache::RiCacheEvent>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_fs_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "fs")?;
m.add_class::<crate::fs::RiFileSystem>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_hooks_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "hooks")?;
m.add_class::<crate::hooks::RiHookKind>()?;
m.add_class::<crate::hooks::RiModulePhase>()?;
m.add_class::<crate::hooks::RiHookEvent>()?;
m.add_class::<crate::hooks::RiHookBus>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_observability_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "observability")?;
m.add_class::<crate::observability::RiObservabilityModule>()?;
m.add_class::<crate::observability::RiObservabilityConfig>()?;
m.add_class::<crate::observability::RiObservabilityData>()?;
m.add_class::<crate::observability::RiMetricsRegistry>()?;
m.add_class::<crate::observability::RiTracer>()?;
m.add_class::<crate::observability::RiMetricType>()?;
m.add_class::<crate::observability::RiMetricConfig>()?;
m.add_class::<crate::observability::RiMetricSample>()?;
m.add_class::<crate::observability::RiMetric>()?;
#[cfg(feature = "system_info")]
{
m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
m.add_class::<crate::observability::RiSystemMetrics>()?;
m.add_class::<crate::observability::RiCPUMetrics>()?;
m.add_class::<crate::observability::RiMemoryMetrics>()?;
m.add_class::<crate::observability::RiDiskMetrics>()?;
m.add_class::<crate::observability::RiNetworkMetrics>()?;
}
parent.add_submodule(&m)?;
Ok(())
}
fn create_queue_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "queue")?;
m.add_class::<crate::queue::RiQueueModule>()?;
m.add_class::<crate::queue::RiQueueConfig>()?;
m.add_class::<crate::queue::RiQueueManager>()?;
m.add_class::<crate::queue::RiQueueMessage>()?;
m.add_class::<crate::queue::RiQueueStats>()?;
m.add_class::<crate::queue::RiQueueBackendType>()?;
m.add_class::<crate::queue::RiRetryPolicy>()?;
m.add_class::<crate::queue::RiDeadLetterConfig>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_gateway_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "gateway")?;
m.add_class::<crate::gateway::RiGateway>()?;
m.add_class::<crate::gateway::RiGatewayConfig>()?;
m.add_class::<crate::gateway::RiRoute>()?;
m.add_class::<crate::gateway::RiRouter>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_service_mesh_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "service_mesh")?;
m.add_class::<crate::service_mesh::RiServiceMesh>()?;
m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
m.add_class::<crate::service_mesh::RiServiceInstance>()?;
m.add_class::<crate::service_mesh::RiServiceStatus>()?;
m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
m.add_class::<crate::service_mesh::traffic_management::RiTrafficRoute>()?;
m.add_class::<crate::service_mesh::traffic_management::RiMatchCriteria>()?;
m.add_class::<crate::service_mesh::traffic_management::RiRouteAction>()?;
m.add_class::<crate::service_mesh::traffic_management::RiWeightedDestination>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_auth_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "auth")?;
m.add_class::<crate::auth::RiAuthModule>()?;
m.add_class::<crate::auth::RiAuthConfig>()?;
m.add_class::<crate::auth::RiJWTManager>()?;
m.add_class::<crate::auth::RiJWTClaims>()?;
m.add_class::<crate::auth::RiJWTValidationOptions>()?;
m.add_class::<crate::auth::RiSessionManager>()?;
m.add_class::<crate::auth::RiSession>()?;
m.add_class::<crate::auth::RiPermissionManager>()?;
m.add_class::<crate::auth::RiPermission>()?;
m.add_class::<crate::auth::RiRole>()?;
m.add_class::<crate::auth::RiOAuthManager>()?;
m.add_class::<crate::auth::RiOAuthToken>()?;
m.add_class::<crate::auth::RiOAuthUserInfo>()?;
m.add_class::<crate::auth::RiOAuthProvider>()?;
m.add_class::<crate::auth::RiJWTRevocationList>()?;
m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
m.add_class::<crate::auth::RiSecurityManager>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_database_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "database")?;
m.add_class::<crate::database::RiDatabaseConfig>()?;
m.add_class::<crate::database::RiDatabasePool>()?;
m.add_class::<crate::database::RiDBRow>()?;
m.add_class::<crate::database::RiDBResult>()?;
m.add_class::<crate::database::RiDynamicPoolConfig>()?;
m.add_class::<crate::database::RiDatabaseMetrics>()?;
m.add_class::<crate::database::orm::ColumnDefinition>()?;
m.add_class::<crate::database::orm::IndexDefinition>()?;
m.add_class::<crate::database::orm::ForeignKeyDefinition>()?;
m.add_class::<crate::database::orm::TableDefinition>()?;
m.add_class::<crate::database::orm::ComparisonOperator>()?;
m.add_class::<crate::database::orm::LogicalOperator>()?;
m.add_class::<crate::database::orm::Criteria>()?;
m.add_class::<crate::database::orm::JoinClause>()?;
m.add_class::<crate::database::orm::SortOrder>()?;
m.add_class::<crate::database::orm::Pagination>()?;
m.add_class::<crate::database::orm::QueryBuilder>()?;
m.add_class::<crate::database::orm::JoinType>()?;
m.add_class::<crate::database::orm::RiPyORMRepository>()?;
parent.add_submodule(&m)?;
Ok(())
}
fn create_validation_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(parent.py(), "validation")?;
m.add_class::<crate::validation::RiValidationError>()?;
m.add_class::<crate::validation::RiValidationResult>()?;
m.add_class::<crate::validation::RiValidationSeverity>()?;
m.add_class::<crate::validation::RiValidatorBuilder>()?;
m.add_class::<crate::validation::RiValidationRunner>()?;
m.add_class::<crate::validation::RiSanitizer>()?;
m.add_class::<crate::validation::RiSanitizationConfig>()?;
m.add_class::<crate::validation::RiSchemaValidator>()?;
m.add_class::<crate::validation::RiValidationModule>()?;
parent.add_submodule(&m)?;
Ok(())
}
#[cfg(feature = "protocol")]
fn create_protocol_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
let m = PyModule::new(_parent.py(), "protocol")?;
m.add_class::<crate::protocol::RiProtocolManager>()?;
m.add_class::<crate::protocol::RiProtocolType>()?;
m.add_class::<crate::protocol::RiProtocolConfig>()?;
m.add_class::<crate::protocol::RiProtocolStatus>()?;
m.add_class::<crate::protocol::RiProtocolStats>()?;
m.add_class::<crate::protocol::RiConnectionState>()?;
m.add_class::<crate::protocol::RiConnectionStats>()?;
m.add_class::<crate::protocol::RiProtocolHealth>()?;
m.add_class::<crate::protocol::RiFrame>()?;
m.add_class::<crate::protocol::RiFrameHeader>()?;
m.add_class::<crate::protocol::RiFrameType>()?;
m.add_class::<crate::protocol::RiConnectionInfo>()?;
m.add_class::<crate::protocol::RiMessageFlags>()?;
m.add_class::<crate::protocol::RiSecurityLevel>()?;
m.add_class::<crate::protocol::frames::RiFrameParser>()?;
m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
_parent.add_submodule(&m)?;
Ok(())
}
fn create_grpc_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
#[cfg(all(feature = "grpc", feature = "pyo3"))]
{
let m = PyModule::new(_parent.py(), "grpc")?;
m.add_class::<crate::grpc::RiGrpcConfig>()?;
m.add_class::<crate::grpc::RiGrpcStats>()?;
m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
m.add_class::<crate::grpc::RiGrpcServerPy>()?;
m.add_class::<crate::grpc::RiGrpcClientPy>()?;
_parent.add_submodule(&m)?;
}
#[cfg(not(all(feature = "grpc", feature = "pyo3")))]
{
let _ = _parent;
}
Ok(())
}
fn create_ws_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
#[cfg(all(feature = "websocket", feature = "pyo3"))]
{
let m = PyModule::new(_parent.py(), "ws")?;
m.add_class::<crate::ws::RiWSServerConfig>()?;
m.add_class::<crate::ws::RiWSEvent>()?;
m.add_class::<crate::ws::RiWSSessionInfo>()?;
m.add_class::<crate::ws::RiWSServerStats>()?;
m.add_class::<crate::ws::RiWSPythonHandler>()?;
m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
m.add_class::<crate::ws::RiWSServerPy>()?;
m.add_class::<crate::ws::RiWSClientConfig>()?;
m.add_class::<crate::ws::RiWSClientStats>()?;
m.add_class::<crate::ws::RiWSClientPy>()?;
_parent.add_submodule(&m)?;
}
#[cfg(not(all(feature = "websocket", feature = "pyo3")))]
{
let _ = _parent;
}
Ok(())
}
}