1pub mod core;
47pub mod fs;
49pub mod log;
51pub mod config;
53pub mod hooks;
55pub mod observability;
57pub mod device;
59pub mod cache;
61pub mod queue;
63pub mod gateway;
65pub mod service_mesh;
67pub mod auth;
69pub mod database;
71#[cfg(feature = "protocol")]
73pub mod protocol;
74pub mod validation;
76pub mod module_rpc;
78#[cfg(feature = "grpc")]
80pub mod grpc;
81#[cfg(feature = "websocket")]
83pub mod ws;
84#[cfg(feature = "c")]
86pub mod c;
87#[cfg(feature = "java")]
89pub mod java;
90
91pub mod prelude {
114 pub use crate::core::{RiAppBuilder, RiAppRuntime};
119 pub use crate::core::RiServiceContext;
121 pub use crate::core::RiModule;
123 pub use crate::core::RiError;
125 pub use crate::core::RiResult;
127
128 #[cfg(feature = "pyo3")]
132 pub use crate::core::RiLockError;
133
134 #[cfg(feature = "pyo3")]
136 pub use crate::core::{RiPythonModule, RiPythonModuleAdapter, RiPythonServiceModule, RiPythonAsyncServiceModule};
137
138 #[cfg(feature = "pyo3")]
140 pub use crate::core::{RiErrorChain, RiErrorChainIter, RiErrorContext, RiOptionErrorContext};
141
142 #[cfg(feature = "pyo3")]
144 pub use crate::core::{RiHealthStatus, RiHealthCheckResult, RiHealthCheckConfig, RiHealthReport, RiHealthChecker};
145
146 #[cfg(feature = "pyo3")]
148 pub use crate::service_mesh::health_check::{RiHealthCheckType, RiHealthSummary};
149
150 #[cfg(feature = "pyo3")]
152 pub use crate::core::RiLifecycleObserver;
153
154 #[cfg(feature = "pyo3")]
156 pub use crate::core::RiLogAnalyticsModule;
157
158 pub use crate::fs::RiFileSystem;
160
161 pub use crate::log::RiLogger;
163 pub use crate::log::RiLogConfig;
165 pub use crate::log::RiLogLevel;
167
168 pub use crate::config::RiConfig;
170 pub use crate::config::RiConfigManager;
172
173 pub use crate::hooks::RiHookBus;
175 pub use crate::hooks::RiHookEvent;
177 pub use crate::hooks::RiHookKind;
179 pub use crate::hooks::RiModulePhase;
181
182 pub use crate::cache::RiCacheModule;
184 pub use crate::cache::RiCacheConfig;
186
187 pub use crate::queue::RiQueueModule;
189 pub use crate::queue::RiQueueConfig;
191
192 pub use crate::gateway::RiGateway;
194 pub use crate::gateway::RiGatewayConfig;
196 pub use crate::gateway::RiRoute;
198 pub use crate::gateway::RiRouter;
200 pub use crate::gateway::load_balancer::RiBackendServer;
202 pub use crate::gateway::load_balancer::RiLoadBalancerServerStats;
204 pub use crate::gateway::load_balancer::RiLoadBalancer;
206 pub use crate::gateway::load_balancer::RiLoadBalancerStrategy;
208
209 pub use crate::device::RiDeviceControlModule;
211 pub use crate::device::RiDeviceControlConfig;
213 pub use crate::device::RiDeviceSchedulingConfig;
215 pub use crate::device::RiDevice;
217 pub use crate::device::RiDeviceType;
219
220 pub use crate::auth::RiAuthModule;
222 pub use crate::auth::RiAuthConfig;
224
225 pub use crate::service_mesh::RiServiceMesh;
227 pub use crate::service_mesh::RiServiceMeshConfig;
229 pub use crate::service_mesh::RiServiceMeshStats;
231 pub use crate::service_mesh::RiServiceEndpoint;
233 pub use crate::service_mesh::RiServiceHealthStatus;
235
236 pub use crate::observability::RiObservabilityModule;
238 pub use crate::observability::RiObservabilityConfig;
240 pub use crate::observability::RiTracer;
242 pub use crate::observability::RiMetricsRegistry;
244
245 pub use crate::database::RiDatabaseConfig;
247 pub use crate::database::DatabaseType;
249 pub use crate::database::RiDatabasePool;
251 pub use crate::database::RiDBRow;
253 pub use crate::database::RiDBResult;
255
256 pub use crate::module_rpc::RiModuleRPC;
258 pub use crate::module_rpc::RiModuleClient;
260 pub use crate::module_rpc::RiModuleEndpoint;
262 pub use crate::module_rpc::RiMethodCall;
264 pub use crate::module_rpc::RiMethodResponse;
266}
267
268#[cfg(feature = "pyo3")]
270pub mod py {
271 use pyo3::prelude::*;
272 use pyo3::types::PyModule;
273 use crate::prelude::*;
274
275 #[pymodule]
277 pub fn ri(m: &Bound<'_, PyModule>) -> PyResult<()> {
278 m.add_class::<RiAppBuilder>()?;
280 m.add_class::<RiAppRuntime>()?;
281 m.add_class::<RiConfig>()?;
282 m.add_class::<RiConfigManager>()?;
283 m.add_class::<RiError>()?;
284 m.add_class::<RiServiceContext>()?;
285
286 m.add_class::<crate::core::module::RiPythonModule>()?;
288 m.add_class::<crate::core::module::RiPythonModuleAdapter>()?;
289 m.add_class::<crate::core::module::RiPythonServiceModule>()?;
290 m.add_class::<crate::core::module::RiPythonAsyncServiceModule>()?;
291
292 m.add_class::<RiLogger>()?;
294 m.add_class::<RiLogConfig>()?;
295 m.add_class::<RiLogLevel>()?;
296 m.add_class::<RiFileSystem>()?;
297 m.add_class::<RiHookBus>()?;
298 m.add_class::<RiHookEvent>()?;
299 m.add_class::<RiHookKind>()?;
300 m.add_class::<RiModulePhase>()?;
301
302 m.add_class::<crate::core::RiLockError>()?;
304
305 m.add_class::<crate::core::RiHealthStatus>()?;
307 m.add_class::<crate::core::RiHealthCheckResult>()?;
308 m.add_class::<crate::core::RiHealthCheckConfig>()?;
309 m.add_class::<crate::core::RiHealthReport>()?;
310 m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
311 m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
312 m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
313
314 m.add_class::<crate::core::RiLifecycleObserver>()?;
316
317 m.add_class::<crate::core::RiLogAnalyticsModule>()?;
319
320 m.add_class::<crate::cache::RiCacheModule>()?;
322 m.add_class::<crate::cache::RiCacheManager>()?;
323 m.add_class::<crate::cache::RiCacheConfig>()?;
324 m.add_class::<crate::cache::RiCacheBackendType>()?;
325 m.add_class::<crate::cache::RiCachePolicy>()?;
326 m.add_class::<crate::cache::RiCacheStats>()?;
327 m.add_class::<crate::cache::RiCachedValue>()?;
328 m.add_class::<crate::cache::RiCacheEvent>()?;
329
330 m.add_class::<crate::queue::RiQueueModule>()?;
332 m.add_class::<crate::queue::RiQueueConfig>()?;
333 m.add_class::<crate::queue::RiQueueManager>()?;
334 m.add_class::<crate::queue::RiQueueMessage>()?;
335 m.add_class::<crate::queue::RiQueueStats>()?;
336 m.add_class::<crate::queue::RiQueueBackendType>()?;
337 m.add_class::<crate::queue::RiRetryPolicy>()?;
338 m.add_class::<crate::queue::RiDeadLetterConfig>()?;
339
340 m.add_class::<crate::gateway::RiGateway>()?;
342 m.add_class::<crate::gateway::RiGatewayConfig>()?;
343 m.add_class::<crate::gateway::RiRouter>()?;
344 m.add_class::<crate::gateway::RiRoute>()?;
345 m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
346 m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
347 m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
348 m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
349 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
350 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
351 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
352 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
353
354 m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
356 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
357 m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
358 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
359
360 m.add_class::<crate::service_mesh::RiServiceMesh>()?;
362 m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
363 m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
364 m.add_class::<crate::service_mesh::RiServiceInstance>()?;
365 m.add_class::<crate::service_mesh::RiServiceStatus>()?;
366 m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
367 m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
368 m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
369 m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
370 m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
371 m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
372 m.add_class::<crate::service_mesh::RiTrafficRoute>()?;
373 m.add_class::<crate::service_mesh::RiMatchCriteria>()?;
374 m.add_class::<crate::service_mesh::RiRouteAction>()?;
375 m.add_class::<crate::service_mesh::RiWeightedDestination>()?;
376
377 m.add_class::<crate::auth::RiAuthModule>()?;
379 m.add_class::<crate::auth::RiAuthConfig>()?;
380 m.add_class::<crate::auth::RiJWTManager>()?;
381 m.add_class::<crate::auth::RiJWTClaims>()?;
382 m.add_class::<crate::auth::RiJWTValidationOptions>()?;
383 m.add_class::<crate::auth::RiSessionManager>()?;
384 m.add_class::<crate::auth::RiSession>()?;
385 m.add_class::<crate::auth::RiPermissionManager>()?;
386 m.add_class::<crate::auth::RiOAuthManager>()?;
387 m.add_class::<crate::auth::RiOAuthToken>()?;
388 m.add_class::<crate::auth::RiOAuthUserInfo>()?;
389 m.add_class::<crate::auth::RiOAuthProvider>()?;
390 m.add_class::<crate::auth::RiPermission>()?;
391 m.add_class::<crate::auth::RiRole>()?;
392 m.add_class::<crate::auth::RiJWTRevocationList>()?;
393 m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
394 m.add_class::<crate::auth::RiSecurityManager>()?;
395
396 m.add_class::<crate::observability::RiObservabilityModule>()?;
398 m.add_class::<crate::observability::RiObservabilityConfig>()?;
399 m.add_class::<crate::observability::RiMetricsRegistry>()?;
400 m.add_class::<crate::observability::RiTracer>()?;
401 m.add_class::<crate::observability::RiMetricType>()?;
402 m.add_class::<crate::observability::RiMetricConfig>()?;
403 m.add_class::<crate::observability::RiMetricSample>()?;
404 m.add_class::<crate::observability::RiMetric>()?;
405 m.add_class::<crate::observability::RiObservabilityData>()?;
406
407 #[cfg(feature = "system_info")]
409 {
410 m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
411 m.add_class::<crate::observability::RiSystemMetrics>()?;
412 m.add_class::<crate::observability::RiCPUMetrics>()?;
413 m.add_class::<crate::observability::RiMemoryMetrics>()?;
414 m.add_class::<crate::observability::RiDiskMetrics>()?;
415 m.add_class::<crate::observability::RiNetworkMetrics>()?;
416 }
417
418 m.add_class::<crate::validation::RiValidationError>()?;
420 m.add_class::<crate::validation::RiValidationResult>()?;
421 m.add_class::<crate::validation::RiValidationSeverity>()?;
422 m.add_class::<crate::validation::RiValidatorBuilder>()?;
423 m.add_class::<crate::validation::RiValidationRunner>()?;
424 m.add_class::<crate::validation::RiSanitizer>()?;
425 m.add_class::<crate::validation::RiSanitizationConfig>()?;
426 m.add_class::<crate::validation::RiSchemaValidator>()?;
427 m.add_class::<crate::validation::RiValidationModule>()?;
428
429 #[cfg(feature = "protocol")]
431 {
432 m.add_class::<crate::protocol::RiProtocolManager>()?;
433 m.add_class::<crate::protocol::RiProtocolType>()?;
434 m.add_class::<crate::protocol::RiProtocolConfig>()?;
435 m.add_class::<crate::protocol::RiProtocolStatus>()?;
436 m.add_class::<crate::protocol::RiProtocolStats>()?;
437 m.add_class::<crate::protocol::RiConnectionState>()?;
438 m.add_class::<crate::protocol::RiConnectionStats>()?;
439 m.add_class::<crate::protocol::RiProtocolHealth>()?;
440 m.add_class::<crate::protocol::RiFrame>()?;
441 m.add_class::<crate::protocol::RiFrameHeader>()?;
442 m.add_class::<crate::protocol::RiFrameType>()?;
443 m.add_class::<crate::protocol::RiConnectionInfo>()?;
444 m.add_class::<crate::protocol::RiMessageFlags>()?;
445 m.add_class::<crate::protocol::RiSecurityLevel>()?;
446 m.add_class::<crate::protocol::frames::RiFrameParser>()?;
447 m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
448 }
449
450 m.add_class::<crate::database::RiDatabaseConfig>()?;
452 m.add_class::<crate::database::RiDatabasePool>()?;
453 m.add_class::<crate::database::RiDBRow>()?;
454 m.add_class::<crate::database::RiDBResult>()?;
455 m.add_class::<crate::database::orm::RiPyORMRepository>()?;
456 m.add_class::<crate::database::DynamicPoolConfig>()?;
457 m.add_class::<crate::database::DatabaseMetrics>()?;
458
459 #[cfg(all(feature = "grpc", feature = "pyo3"))]
461 {
462 m.add_class::<crate::grpc::RiGrpcConfig>()?;
463 m.add_class::<crate::grpc::RiGrpcStats>()?;
464 m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
465 m.add_class::<crate::grpc::RiGrpcServerPy>()?;
466 m.add_class::<crate::grpc::RiGrpcClientPy>()?;
467 }
468
469 #[cfg(all(feature = "websocket", feature = "pyo3"))]
471 {
472 m.add_class::<crate::ws::RiWSServerConfig>()?;
473 m.add_class::<crate::ws::RiWSEvent>()?;
474 m.add_class::<crate::ws::RiWSSessionInfo>()?;
475 m.add_class::<crate::ws::RiWSServerStats>()?;
476 m.add_class::<crate::ws::RiWSPythonHandler>()?;
477 m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
478 m.add_class::<crate::ws::RiWSServerPy>()?;
479 m.add_class::<crate::ws::RiWSClientConfig>()?;
480 m.add_class::<crate::ws::RiWSClientStats>()?;
481 m.add_class::<crate::ws::RiWSClientPy>()?;
482 }
483
484 m.add_class::<crate::module_rpc::RiModuleRPC>()?;
486 m.add_class::<crate::module_rpc::RiModuleClient>()?;
487 m.add_class::<crate::module_rpc::RiModuleEndpoint>()?;
488 m.add_class::<crate::module_rpc::RiMethodCall>()?;
489 m.add_class::<crate::module_rpc::RiMethodResponse>()?;
490
491 m.add_class::<crate::device::RiDeviceControlModule>()?;
493 m.add_class::<crate::device::RiDevice>()?;
494 m.add_class::<crate::device::RiDeviceType>()?;
495 m.add_class::<crate::device::RiDeviceStatus>()?;
496 m.add_class::<crate::device::RiDeviceCapabilities>()?;
497 m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
498 m.add_class::<crate::device::RiDeviceController>()?;
499 m.add_class::<crate::device::RiDeviceConfig>()?;
500 m.add_class::<crate::device::RiDeviceControlConfig>()?;
501 m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
502 m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
503 m.add_class::<crate::device::RiDiscoveryResult>()?;
504 m.add_class::<crate::device::RiResourceRequest>()?;
505 m.add_class::<crate::device::RiResourceAllocation>()?;
506 m.add_class::<crate::device::RiRequestSlaClass>()?;
507 m.add_class::<crate::device::RiResourceWeights>()?;
508 m.add_class::<crate::device::RiAffinityRules>()?;
509 m.add_class::<crate::device::RiResourcePoolStatus>()?;
510 m.add_class::<crate::device::pool::RiResourcePool>()?;
511 m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
512 m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
513 m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
514 m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
515 m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
516 m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
517 m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
518 m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
519 m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
520 m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
521 m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
522 m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
523 m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
524 m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
525
526 m.add_class::<crate::database::RiDatabaseMigration>()?;
528
529 create_device_module(m)?;
531 create_cache_module(m)?;
532 create_fs_module(m)?;
533 create_hooks_module(m)?;
534 create_observability_module(m)?;
535 create_queue_module(m)?;
536 create_gateway_module(m)?;
537 create_service_mesh_module(m)?;
538 create_auth_module(m)?;
539 create_database_module(m)?;
540 create_validation_module(m)?;
541 #[cfg(feature = "protocol")]
542 create_protocol_module(m)?;
543 create_grpc_module(m)?;
544 create_ws_module(m)?;
545
546 Ok(())
547 }
548
549 fn create_device_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
550 let m = PyModule::new(parent.py(), "device")?;
551
552 m.add_class::<crate::device::RiDeviceControlModule>()?;
553 m.add_class::<crate::device::RiDevice>()?;
554 m.add_class::<crate::device::RiDeviceType>()?;
555 m.add_class::<crate::device::RiDeviceStatus>()?;
556 m.add_class::<crate::device::RiDeviceCapabilities>()?;
557 m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
558 m.add_class::<crate::device::RiDeviceController>()?;
559 m.add_class::<crate::device::RiDeviceConfig>()?;
560 m.add_class::<crate::device::RiDeviceControlConfig>()?;
561 m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
562 m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
563 m.add_class::<crate::device::RiDiscoveryResult>()?;
564 m.add_class::<crate::device::RiResourceRequest>()?;
565 m.add_class::<crate::device::RiResourceAllocation>()?;
566 m.add_class::<crate::device::RiRequestSlaClass>()?;
567 m.add_class::<crate::device::RiResourceWeights>()?;
568 m.add_class::<crate::device::RiAffinityRules>()?;
569 m.add_class::<crate::device::pool::RiResourcePool>()?;
570 m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
571 m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
572 m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
573 m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
574 m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
575 m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
576 m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
577 m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
578 m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
579 m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
580 m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
581 m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
582 m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
583 m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
584
585 parent.add_submodule(&m)?;
586 Ok(())
587 }
588
589 fn create_cache_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
590 let m = PyModule::new(parent.py(), "cache")?;
591
592 m.add_class::<crate::cache::RiCacheModule>()?;
594 m.add_class::<crate::cache::RiCacheManager>()?;
595 m.add_class::<crate::cache::RiCacheConfig>()?;
596 m.add_class::<crate::cache::RiCacheBackendType>()?;
597 m.add_class::<crate::cache::RiCachePolicy>()?;
598 m.add_class::<crate::cache::RiCacheStats>()?;
599 m.add_class::<crate::cache::RiCachedValue>()?;
600 m.add_class::<crate::cache::RiCacheEvent>()?;
601
602 parent.add_submodule(&m)?;
603 Ok(())
604 }
605
606 fn create_fs_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
607 let m = PyModule::new(parent.py(), "fs")?;
608 m.add_class::<crate::fs::RiFileSystem>()?;
609 parent.add_submodule(&m)?;
610 Ok(())
611 }
612
613 fn create_hooks_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
614 let m = PyModule::new(parent.py(), "hooks")?;
615 m.add_class::<crate::hooks::RiHookKind>()?;
616 m.add_class::<crate::hooks::RiModulePhase>()?;
617 m.add_class::<crate::hooks::RiHookEvent>()?;
618 m.add_class::<crate::hooks::RiHookBus>()?;
619 parent.add_submodule(&m)?;
620 Ok(())
621 }
622
623 fn create_observability_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
624 let m = PyModule::new(parent.py(), "observability")?;
625 m.add_class::<crate::observability::RiObservabilityModule>()?;
626 m.add_class::<crate::observability::RiObservabilityConfig>()?;
627 m.add_class::<crate::observability::RiObservabilityData>()?;
628 m.add_class::<crate::observability::RiMetricsRegistry>()?;
629 m.add_class::<crate::observability::RiTracer>()?;
630 m.add_class::<crate::observability::RiMetricType>()?;
631 m.add_class::<crate::observability::RiMetricConfig>()?;
632 m.add_class::<crate::observability::RiMetricSample>()?;
633 m.add_class::<crate::observability::RiMetric>()?;
634 #[cfg(feature = "system_info")]
635 {
636 m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
637 m.add_class::<crate::observability::RiSystemMetrics>()?;
638 m.add_class::<crate::observability::RiCPUMetrics>()?;
639 m.add_class::<crate::observability::RiMemoryMetrics>()?;
640 m.add_class::<crate::observability::RiDiskMetrics>()?;
641 m.add_class::<crate::observability::RiNetworkMetrics>()?;
642 }
643 parent.add_submodule(&m)?;
644 Ok(())
645 }
646
647 fn create_queue_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
648 let m = PyModule::new(parent.py(), "queue")?;
649 m.add_class::<crate::queue::RiQueueModule>()?;
650 m.add_class::<crate::queue::RiQueueConfig>()?;
651 m.add_class::<crate::queue::RiQueueManager>()?;
652 m.add_class::<crate::queue::RiQueueMessage>()?;
653 m.add_class::<crate::queue::RiQueueStats>()?;
654 m.add_class::<crate::queue::RiQueueBackendType>()?;
655 m.add_class::<crate::queue::RiRetryPolicy>()?;
656 m.add_class::<crate::queue::RiDeadLetterConfig>()?;
657 parent.add_submodule(&m)?;
658 Ok(())
659 }
660
661 fn create_gateway_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
662 let m = PyModule::new(parent.py(), "gateway")?;
663 m.add_class::<crate::gateway::RiGateway>()?;
664 m.add_class::<crate::gateway::RiGatewayConfig>()?;
665 m.add_class::<crate::gateway::RiRoute>()?;
666 m.add_class::<crate::gateway::RiRouter>()?;
667 m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
668 m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
669 m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
670 m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
671 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
672 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
673 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
674 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
675 m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
676 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
677 m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
678 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
679 parent.add_submodule(&m)?;
680 Ok(())
681 }
682
683 fn create_service_mesh_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
684 let m = PyModule::new(parent.py(), "service_mesh")?;
685 m.add_class::<crate::service_mesh::RiServiceMesh>()?;
686 m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
687 m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
688 m.add_class::<crate::service_mesh::RiServiceInstance>()?;
689 m.add_class::<crate::service_mesh::RiServiceStatus>()?;
690 m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
691 m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
692 m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
693 m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
694 m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
695 m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
696 m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
697 m.add_class::<crate::service_mesh::traffic_management::RiTrafficRoute>()?;
698 m.add_class::<crate::service_mesh::traffic_management::RiMatchCriteria>()?;
699 m.add_class::<crate::service_mesh::traffic_management::RiRouteAction>()?;
700 m.add_class::<crate::service_mesh::traffic_management::RiWeightedDestination>()?;
701 parent.add_submodule(&m)?;
702 Ok(())
703 }
704
705 fn create_auth_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
706 let m = PyModule::new(parent.py(), "auth")?;
707 m.add_class::<crate::auth::RiAuthModule>()?;
708 m.add_class::<crate::auth::RiAuthConfig>()?;
709 m.add_class::<crate::auth::RiJWTManager>()?;
710 m.add_class::<crate::auth::RiJWTClaims>()?;
711 m.add_class::<crate::auth::RiJWTValidationOptions>()?;
712 m.add_class::<crate::auth::RiSessionManager>()?;
713 m.add_class::<crate::auth::RiSession>()?;
714 m.add_class::<crate::auth::RiPermissionManager>()?;
715 m.add_class::<crate::auth::RiPermission>()?;
716 m.add_class::<crate::auth::RiRole>()?;
717 m.add_class::<crate::auth::RiOAuthManager>()?;
718 m.add_class::<crate::auth::RiOAuthToken>()?;
719 m.add_class::<crate::auth::RiOAuthUserInfo>()?;
720 m.add_class::<crate::auth::RiOAuthProvider>()?;
721 m.add_class::<crate::auth::RiJWTRevocationList>()?;
722 m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
723 m.add_class::<crate::auth::RiSecurityManager>()?;
724 parent.add_submodule(&m)?;
725 Ok(())
726 }
727
728 fn create_database_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
729 let m = PyModule::new(parent.py(), "database")?;
730 m.add_class::<crate::database::RiDatabaseConfig>()?;
731 m.add_class::<crate::database::RiDatabasePool>()?;
732 m.add_class::<crate::database::RiDBRow>()?;
733 m.add_class::<crate::database::RiDBResult>()?;
734 m.add_class::<crate::database::DynamicPoolConfig>()?;
735 m.add_class::<crate::database::DatabaseMetrics>()?;
736 m.add_class::<crate::database::orm::ColumnDefinition>()?;
737 m.add_class::<crate::database::orm::IndexDefinition>()?;
738 m.add_class::<crate::database::orm::ForeignKeyDefinition>()?;
739 m.add_class::<crate::database::orm::TableDefinition>()?;
740 m.add_class::<crate::database::orm::ComparisonOperator>()?;
741 m.add_class::<crate::database::orm::LogicalOperator>()?;
742 m.add_class::<crate::database::orm::Criteria>()?;
743 m.add_class::<crate::database::orm::JoinClause>()?;
744 m.add_class::<crate::database::orm::SortOrder>()?;
745 m.add_class::<crate::database::orm::Pagination>()?;
746 m.add_class::<crate::database::orm::QueryBuilder>()?;
747 m.add_class::<crate::database::orm::JoinType>()?;
748 m.add_class::<crate::database::orm::RiPyORMRepository>()?;
749 parent.add_submodule(&m)?;
750 Ok(())
751 }
752
753 fn create_validation_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
754 let m = PyModule::new(parent.py(), "validation")?;
755 m.add_class::<crate::validation::RiValidationError>()?;
756 m.add_class::<crate::validation::RiValidationResult>()?;
757 m.add_class::<crate::validation::RiValidationSeverity>()?;
758 m.add_class::<crate::validation::RiValidatorBuilder>()?;
759 m.add_class::<crate::validation::RiValidationRunner>()?;
760 m.add_class::<crate::validation::RiSanitizer>()?;
761 m.add_class::<crate::validation::RiSanitizationConfig>()?;
762 m.add_class::<crate::validation::RiSchemaValidator>()?;
763 m.add_class::<crate::validation::RiValidationModule>()?;
764 parent.add_submodule(&m)?;
765 Ok(())
766 }
767
768 #[cfg(feature = "protocol")]
769 fn create_protocol_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
770 let m = PyModule::new(_parent.py(), "protocol")?;
771 m.add_class::<crate::protocol::RiProtocolManager>()?;
772 m.add_class::<crate::protocol::RiProtocolType>()?;
773 m.add_class::<crate::protocol::RiProtocolConfig>()?;
774 m.add_class::<crate::protocol::RiProtocolStatus>()?;
775 m.add_class::<crate::protocol::RiProtocolStats>()?;
776 m.add_class::<crate::protocol::RiConnectionState>()?;
777 m.add_class::<crate::protocol::RiConnectionStats>()?;
778 m.add_class::<crate::protocol::RiProtocolHealth>()?;
779 m.add_class::<crate::protocol::RiFrame>()?;
780 m.add_class::<crate::protocol::RiFrameHeader>()?;
781 m.add_class::<crate::protocol::RiFrameType>()?;
782 m.add_class::<crate::protocol::RiConnectionInfo>()?;
783 m.add_class::<crate::protocol::RiMessageFlags>()?;
784 m.add_class::<crate::protocol::RiSecurityLevel>()?;
785 m.add_class::<crate::protocol::frames::RiFrameParser>()?;
786 m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
787 _parent.add_submodule(&m)?;
788 Ok(())
789 }
790
791 fn create_grpc_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
792 #[cfg(all(feature = "grpc", feature = "pyo3"))]
793 {
794 let m = PyModule::new(_parent.py(), "grpc")?;
795 m.add_class::<crate::grpc::RiGrpcConfig>()?;
796 m.add_class::<crate::grpc::RiGrpcStats>()?;
797 m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
798 m.add_class::<crate::grpc::RiGrpcServerPy>()?;
799 m.add_class::<crate::grpc::RiGrpcClientPy>()?;
800 _parent.add_submodule(&m)?;
801 }
802 #[cfg(not(all(feature = "grpc", feature = "pyo3")))]
803 {
804 let _ = _parent;
805 }
806 Ok(())
807 }
808
809 fn create_ws_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
810 #[cfg(all(feature = "websocket", feature = "pyo3"))]
811 {
812 let m = PyModule::new(_parent.py(), "ws")?;
813 m.add_class::<crate::ws::RiWSServerConfig>()?;
814 m.add_class::<crate::ws::RiWSEvent>()?;
815 m.add_class::<crate::ws::RiWSSessionInfo>()?;
816 m.add_class::<crate::ws::RiWSServerStats>()?;
817 m.add_class::<crate::ws::RiWSPythonHandler>()?;
818 m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
819 m.add_class::<crate::ws::RiWSServerPy>()?;
820 m.add_class::<crate::ws::RiWSClientConfig>()?;
821 m.add_class::<crate::ws::RiWSClientStats>()?;
822 m.add_class::<crate::ws::RiWSClientPy>()?;
823 _parent.add_submodule(&m)?;
824 }
825 #[cfg(not(all(feature = "websocket", feature = "pyo3")))]
826 {
827 let _ = _parent;
828 }
829 Ok(())
830 }
831}