1pub mod core;
46pub mod fs;
48pub mod log;
50pub mod config;
52pub mod hooks;
54pub mod observability;
56pub mod device;
58pub mod cache;
60pub mod queue;
62pub mod gateway;
64pub mod service_mesh;
66pub mod auth;
68pub mod database;
70#[cfg(feature = "protocol")]
72pub mod protocol;
73pub mod validation;
75pub mod module_rpc;
77#[cfg(feature = "grpc")]
79pub mod grpc;
80#[cfg(feature = "websocket")]
82pub mod ws;
83#[cfg(feature = "java")]
85pub mod java;
86
87pub mod py_runtime;
113
114pub mod prelude {
115 pub use crate::core::{RiAppBuilder, RiAppRuntime};
120 pub use crate::core::RiServiceContext;
122 pub use crate::core::RiModule;
124 pub use crate::core::RiError;
126 pub use crate::core::RiResult;
128
129 #[cfg(feature = "pyo3")]
133 pub use crate::core::RiLockError;
134
135 #[cfg(feature = "pyo3")]
137 pub use crate::core::{RiPythonModule, RiPythonModuleAdapter, RiPythonServiceModule, RiPythonAsyncServiceModule};
138
139 #[cfg(feature = "pyo3")]
141 pub use crate::core::{RiErrorChain, RiErrorChainIter, RiErrorContext, RiOptionErrorContext};
142
143 #[cfg(feature = "pyo3")]
145 pub use crate::core::{RiHealthStatus, RiHealthCheckResult, RiHealthCheckConfig, RiHealthReport};
146
147 #[cfg(feature = "pyo3")]
149 pub use crate::service_mesh::health_check::{RiHealthCheckType, RiHealthSummary, RiHealthChecker};
150
151 #[cfg(feature = "pyo3")]
153 pub use crate::core::RiLifecycleObserver;
154
155 #[cfg(feature = "pyo3")]
157 pub use crate::core::RiLogAnalyticsModule;
158
159 pub use crate::fs::RiFileSystem;
161
162 pub use crate::log::RiLogger;
164 pub use crate::log::RiLogConfig;
166 pub use crate::log::RiLogLevel;
168
169 pub use crate::config::RiConfig;
171 pub use crate::config::RiConfigManager;
173
174 pub use crate::hooks::RiHookBus;
176 pub use crate::hooks::RiHookEvent;
178 pub use crate::hooks::RiHookKind;
180 pub use crate::hooks::RiModulePhase;
182
183 pub use crate::cache::RiCacheModule;
185 pub use crate::cache::RiCacheConfig;
187
188 pub use crate::queue::RiQueueModule;
190 pub use crate::queue::RiQueueConfig;
192
193 pub use crate::gateway::RiGateway;
195 pub use crate::gateway::RiGatewayConfig;
197 pub use crate::gateway::RiRoute;
199 pub use crate::gateway::RiRouter;
201 pub use crate::gateway::load_balancer::RiBackendServer;
203 pub use crate::gateway::load_balancer::RiLoadBalancerServerStats;
205 pub use crate::gateway::load_balancer::RiLoadBalancer;
207 pub use crate::gateway::load_balancer::RiLoadBalancerStrategy;
209
210 pub use crate::device::RiDeviceControlModule;
212 pub use crate::device::RiDeviceControlConfig;
214 pub use crate::device::RiDeviceSchedulingConfig;
216 pub use crate::device::RiDevice;
218 pub use crate::device::RiDeviceType;
220
221 pub use crate::auth::RiAuthModule;
223 pub use crate::auth::RiAuthConfig;
225
226 pub use crate::service_mesh::RiServiceMesh;
228 pub use crate::service_mesh::RiServiceMeshConfig;
230 pub use crate::service_mesh::RiServiceMeshStats;
232 pub use crate::service_mesh::RiServiceEndpoint;
234 pub use crate::service_mesh::RiServiceHealthStatus;
236
237 pub use crate::observability::RiObservabilityModule;
239 pub use crate::observability::RiObservabilityConfig;
241 pub use crate::observability::RiTracer;
243 pub use crate::observability::RiMetricsRegistry;
245
246 pub use crate::database::RiDatabaseConfig;
248 pub use crate::database::DatabaseType;
250 pub use crate::database::RiDatabasePool;
252 pub use crate::database::RiDBRow;
254 pub use crate::database::RiDBResult;
256
257 pub use crate::module_rpc::RiModuleRPC;
259 pub use crate::module_rpc::RiModuleClient;
261 pub use crate::module_rpc::RiModuleEndpoint;
263 pub use crate::module_rpc::RiMethodCall;
265 pub use crate::module_rpc::RiMethodResponse;
267}
268
269#[cfg(feature = "pyo3")]
271pub mod py {
272 use pyo3::prelude::*;
273 use pyo3::types::PyModule;
274 use crate::prelude::*;
275
276 #[pymodule]
278 pub fn ri(m: &Bound<'_, PyModule>) -> PyResult<()> {
279 m.add_class::<RiAppBuilder>()?;
281 m.add_class::<RiAppRuntime>()?;
282 m.add_class::<RiConfig>()?;
283 m.add_class::<RiConfigManager>()?;
284 m.add_class::<RiError>()?;
285 m.add_class::<RiServiceContext>()?;
286
287 m.add_class::<crate::core::module::RiPythonModule>()?;
289 m.add_class::<crate::core::module::RiPythonModuleAdapter>()?;
290 m.add_class::<crate::core::module::RiPythonServiceModule>()?;
291 m.add_class::<crate::core::module::RiPythonAsyncServiceModule>()?;
292
293 m.add_class::<RiLogger>()?;
295 m.add_class::<RiLogConfig>()?;
296 m.add_class::<RiLogLevel>()?;
297 m.add_class::<RiFileSystem>()?;
298 m.add_class::<RiHookBus>()?;
299 m.add_class::<RiHookEvent>()?;
300 m.add_class::<RiHookKind>()?;
301 m.add_class::<RiModulePhase>()?;
302
303 m.add_class::<crate::core::RiLockError>()?;
305
306 m.add_class::<crate::core::RiHealthStatus>()?;
308 m.add_class::<crate::core::RiHealthCheckResult>()?;
309 m.add_class::<crate::core::RiHealthCheckConfig>()?;
310 m.add_class::<crate::core::RiHealthReport>()?;
311 m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
312 m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
313 m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
314
315 m.add_class::<crate::core::RiLifecycleObserver>()?;
317
318 m.add_class::<crate::core::RiLogAnalyticsModule>()?;
320
321 m.add_class::<crate::cache::RiCacheModule>()?;
323 m.add_class::<crate::cache::RiCacheManager>()?;
324 m.add_class::<crate::cache::RiCacheConfig>()?;
325 m.add_class::<crate::cache::RiCacheBackendType>()?;
326 m.add_class::<crate::cache::RiCachePolicy>()?;
327 m.add_class::<crate::cache::RiCacheStats>()?;
328 m.add_class::<crate::cache::RiCachedValue>()?;
329 m.add_class::<crate::cache::RiCacheEvent>()?;
330
331 m.add_class::<crate::queue::RiQueueModule>()?;
333 m.add_class::<crate::queue::RiQueueConfig>()?;
334 m.add_class::<crate::queue::RiQueueManager>()?;
335 m.add_class::<crate::queue::RiQueueMessage>()?;
336 m.add_class::<crate::queue::RiQueueStats>()?;
337 m.add_class::<crate::queue::RiQueueBackendType>()?;
338 m.add_class::<crate::queue::RiRetryPolicy>()?;
339 m.add_class::<crate::queue::RiDeadLetterConfig>()?;
340
341 m.add_class::<crate::gateway::RiGateway>()?;
343 m.add_class::<crate::gateway::RiGatewayConfig>()?;
344 m.add_class::<crate::gateway::RiRouter>()?;
345 m.add_class::<crate::gateway::RiRoute>()?;
346 m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
347 m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
348 m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
349 m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
350 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
351 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
352 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
353 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
354
355 m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
357 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
358 m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
359 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
360
361 m.add_class::<crate::service_mesh::RiServiceMesh>()?;
363 m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
364 m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
365 m.add_class::<crate::service_mesh::RiServiceInstance>()?;
366 m.add_class::<crate::service_mesh::RiServiceStatus>()?;
367 m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
368 m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
369 m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
370 m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
371 m.add_class::<crate::service_mesh::RiTrafficRoute>()?;
372 m.add_class::<crate::service_mesh::RiMatchCriteria>()?;
373 m.add_class::<crate::service_mesh::RiRouteAction>()?;
374 m.add_class::<crate::service_mesh::RiWeightedDestination>()?;
375
376 m.add_class::<crate::auth::RiAuthModule>()?;
378 m.add_class::<crate::auth::RiAuthConfig>()?;
379 m.add_class::<crate::auth::RiJWTManager>()?;
380 m.add_class::<crate::auth::RiJWTClaims>()?;
381 m.add_class::<crate::auth::RiJWTValidationOptions>()?;
382 m.add_class::<crate::auth::RiSessionManager>()?;
383 m.add_class::<crate::auth::RiSession>()?;
384 m.add_class::<crate::auth::RiPermissionManager>()?;
385 m.add_class::<crate::auth::RiOAuthManager>()?;
386 m.add_class::<crate::auth::RiOAuthToken>()?;
387 m.add_class::<crate::auth::RiOAuthUserInfo>()?;
388 m.add_class::<crate::auth::RiOAuthProvider>()?;
389 m.add_class::<crate::auth::RiPermission>()?;
390 m.add_class::<crate::auth::RiRole>()?;
391 m.add_class::<crate::auth::RiJWTRevocationList>()?;
392 m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
393 m.add_class::<crate::auth::RiSecurityManager>()?;
394
395 m.add_class::<crate::observability::RiObservabilityModule>()?;
397 m.add_class::<crate::observability::RiObservabilityConfig>()?;
398 m.add_class::<crate::observability::RiMetricsRegistry>()?;
399 m.add_class::<crate::observability::RiTracer>()?;
400 m.add_class::<crate::observability::RiMetricType>()?;
401 m.add_class::<crate::observability::RiMetricConfig>()?;
402 m.add_class::<crate::observability::RiMetricSample>()?;
403 m.add_class::<crate::observability::RiMetric>()?;
404 m.add_class::<crate::observability::RiObservabilityData>()?;
405
406 #[cfg(feature = "system_info")]
408 {
409 m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
410 m.add_class::<crate::observability::RiSystemMetrics>()?;
411 m.add_class::<crate::observability::RiCPUMetrics>()?;
412 m.add_class::<crate::observability::RiMemoryMetrics>()?;
413 m.add_class::<crate::observability::RiDiskMetrics>()?;
414 m.add_class::<crate::observability::RiNetworkMetrics>()?;
415 }
416
417 m.add_class::<crate::validation::RiValidationError>()?;
419 m.add_class::<crate::validation::RiValidationResult>()?;
420 m.add_class::<crate::validation::RiValidationSeverity>()?;
421 m.add_class::<crate::validation::RiValidatorBuilder>()?;
422 m.add_class::<crate::validation::RiValidationRunner>()?;
423 m.add_class::<crate::validation::RiSanitizer>()?;
424 m.add_class::<crate::validation::RiSanitizationConfig>()?;
425 m.add_class::<crate::validation::RiSchemaValidator>()?;
426 m.add_class::<crate::validation::RiValidationModule>()?;
427
428 #[cfg(feature = "protocol")]
430 {
431 m.add_class::<crate::protocol::RiProtocolManager>()?;
432 m.add_class::<crate::protocol::RiProtocolType>()?;
433 m.add_class::<crate::protocol::RiProtocolConfig>()?;
434 m.add_class::<crate::protocol::RiProtocolStatus>()?;
435 m.add_class::<crate::protocol::RiProtocolStats>()?;
436 m.add_class::<crate::protocol::RiConnectionState>()?;
437 m.add_class::<crate::protocol::RiConnectionStats>()?;
438 m.add_class::<crate::protocol::RiProtocolHealth>()?;
439 m.add_class::<crate::protocol::RiFrame>()?;
440 m.add_class::<crate::protocol::RiFrameHeader>()?;
441 m.add_class::<crate::protocol::RiFrameType>()?;
442 m.add_class::<crate::protocol::RiConnectionInfo>()?;
443 m.add_class::<crate::protocol::RiMessageFlags>()?;
444 m.add_class::<crate::protocol::RiSecurityLevel>()?;
445 m.add_class::<crate::protocol::frames::RiFrameParser>()?;
446 m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
447 }
448
449 m.add_class::<crate::database::RiDatabaseConfig>()?;
451 m.add_class::<crate::database::RiDatabasePool>()?;
452 m.add_class::<crate::database::RiDBRow>()?;
453 m.add_class::<crate::database::RiDBResult>()?;
454 m.add_class::<crate::database::orm::RiPyORMRepository>()?;
455 m.add_class::<crate::database::RiDynamicPoolConfig>()?;
456 m.add_class::<crate::database::RiDatabaseMetrics>()?;
457
458 #[cfg(all(feature = "grpc", feature = "pyo3"))]
460 {
461 m.add_class::<crate::grpc::RiGrpcConfig>()?;
462 m.add_class::<crate::grpc::RiGrpcStats>()?;
463 m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
464 m.add_class::<crate::grpc::RiGrpcServerPy>()?;
465 m.add_class::<crate::grpc::RiGrpcClientPy>()?;
466 }
467
468 #[cfg(all(feature = "websocket", feature = "pyo3"))]
470 {
471 m.add_class::<crate::ws::RiWSServerConfig>()?;
472 m.add_class::<crate::ws::RiWSEvent>()?;
473 m.add_class::<crate::ws::RiWSSessionInfo>()?;
474 m.add_class::<crate::ws::RiWSServerStats>()?;
475 m.add_class::<crate::ws::RiWSPythonHandler>()?;
476 m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
477 m.add_class::<crate::ws::RiWSServerPy>()?;
478 m.add_class::<crate::ws::RiWSClientConfig>()?;
479 m.add_class::<crate::ws::RiWSClientStats>()?;
480 m.add_class::<crate::ws::RiWSClientPy>()?;
481 }
482
483 m.add_class::<crate::module_rpc::RiModuleRPC>()?;
485 m.add_class::<crate::module_rpc::RiModuleClient>()?;
486 m.add_class::<crate::module_rpc::RiModuleEndpoint>()?;
487 m.add_class::<crate::module_rpc::RiMethodCall>()?;
488 m.add_class::<crate::module_rpc::RiMethodResponse>()?;
489
490 m.add_class::<crate::device::RiDeviceControlModule>()?;
492 m.add_class::<crate::device::RiDevice>()?;
493 m.add_class::<crate::device::RiDeviceType>()?;
494 m.add_class::<crate::device::RiDeviceStatus>()?;
495 m.add_class::<crate::device::RiDeviceCapabilities>()?;
496 m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
497 m.add_class::<crate::device::RiDeviceController>()?;
498 m.add_class::<crate::device::RiDeviceConfig>()?;
499 m.add_class::<crate::device::RiDeviceControlConfig>()?;
500 m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
501 m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
502 m.add_class::<crate::device::RiDiscoveryResult>()?;
503 m.add_class::<crate::device::RiResourceRequest>()?;
504 m.add_class::<crate::device::RiResourceAllocation>()?;
505 m.add_class::<crate::device::RiRequestSlaClass>()?;
506 m.add_class::<crate::device::RiResourceWeights>()?;
507 m.add_class::<crate::device::RiAffinityRules>()?;
508 m.add_class::<crate::device::RiResourcePoolStatus>()?;
509 m.add_class::<crate::device::pool::RiResourcePool>()?;
510 m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
511 m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
512 m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
513 m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
514 m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
515 m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
516 m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
517 m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
518 m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
519 m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
520 m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
521 m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
522 m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
523 m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
524
525 m.add_class::<crate::database::RiDatabaseMigration>()?;
527
528 create_device_module(m)?;
530 create_cache_module(m)?;
531 create_fs_module(m)?;
532 create_hooks_module(m)?;
533 create_observability_module(m)?;
534 create_queue_module(m)?;
535 create_gateway_module(m)?;
536 create_service_mesh_module(m)?;
537 create_auth_module(m)?;
538 create_database_module(m)?;
539 create_validation_module(m)?;
540 #[cfg(feature = "protocol")]
541 create_protocol_module(m)?;
542 create_grpc_module(m)?;
543 create_ws_module(m)?;
544
545 Ok(())
546 }
547
548 fn create_device_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
549 let m = PyModule::new(parent.py(), "device")?;
550
551 m.add_class::<crate::device::RiDeviceControlModule>()?;
552 m.add_class::<crate::device::RiDevice>()?;
553 m.add_class::<crate::device::RiDeviceType>()?;
554 m.add_class::<crate::device::RiDeviceStatus>()?;
555 m.add_class::<crate::device::RiDeviceCapabilities>()?;
556 m.add_class::<crate::device::RiDeviceHealthMetrics>()?;
557 m.add_class::<crate::device::RiDeviceController>()?;
558 m.add_class::<crate::device::RiDeviceConfig>()?;
559 m.add_class::<crate::device::RiDeviceControlConfig>()?;
560 m.add_class::<crate::device::RiDeviceSchedulingConfig>()?;
561 m.add_class::<crate::device::RiNetworkDeviceInfo>()?;
562 m.add_class::<crate::device::RiDiscoveryResult>()?;
563 m.add_class::<crate::device::RiResourceRequest>()?;
564 m.add_class::<crate::device::RiResourceAllocation>()?;
565 m.add_class::<crate::device::RiRequestSlaClass>()?;
566 m.add_class::<crate::device::RiResourceWeights>()?;
567 m.add_class::<crate::device::RiAffinityRules>()?;
568 m.add_class::<crate::device::pool::RiResourcePool>()?;
569 m.add_class::<crate::device::pool::RiResourcePoolConfig>()?;
570 m.add_class::<crate::device::pool::RiResourcePoolStatistics>()?;
571 m.add_class::<crate::device::pool::RiResourcePoolManager>()?;
572 m.add_class::<crate::device::pool::RiConnectionPoolStatistics>()?;
573 m.add_class::<crate::device::scheduler::RiResourceScheduler>()?;
574 m.add_class::<crate::device::scheduler::RiDeviceScheduler>()?;
575 m.add_class::<crate::device::scheduler::RiSchedulingPolicy>()?;
576 m.add_class::<crate::device::scheduler::RiAllocationRecord>()?;
577 m.add_class::<crate::device::scheduler::RiAllocationRequest>()?;
578 m.add_class::<crate::device::scheduler::RiAllocationStatistics>()?;
579 m.add_class::<crate::device::scheduler::RiDeviceTypeStatistics>()?;
580 m.add_class::<crate::device::scheduler::RiSchedulingRecommendation>()?;
581 m.add_class::<crate::device::scheduler::RiSchedulingRecommendationType>()?;
582 m.add_class::<crate::device::RiDeviceDiscoveryEngine>()?;
583
584 parent.add_submodule(&m)?;
585 Ok(())
586 }
587
588 fn create_cache_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
589 let m = PyModule::new(parent.py(), "cache")?;
590
591 m.add_class::<crate::cache::RiCacheModule>()?;
593 m.add_class::<crate::cache::RiCacheManager>()?;
594 m.add_class::<crate::cache::RiCacheConfig>()?;
595 m.add_class::<crate::cache::RiCacheBackendType>()?;
596 m.add_class::<crate::cache::RiCachePolicy>()?;
597 m.add_class::<crate::cache::RiCacheStats>()?;
598 m.add_class::<crate::cache::RiCachedValue>()?;
599 m.add_class::<crate::cache::RiCacheEvent>()?;
600
601 parent.add_submodule(&m)?;
602 Ok(())
603 }
604
605 fn create_fs_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
606 let m = PyModule::new(parent.py(), "fs")?;
607 m.add_class::<crate::fs::RiFileSystem>()?;
608 parent.add_submodule(&m)?;
609 Ok(())
610 }
611
612 fn create_hooks_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
613 let m = PyModule::new(parent.py(), "hooks")?;
614 m.add_class::<crate::hooks::RiHookKind>()?;
615 m.add_class::<crate::hooks::RiModulePhase>()?;
616 m.add_class::<crate::hooks::RiHookEvent>()?;
617 m.add_class::<crate::hooks::RiHookBus>()?;
618 parent.add_submodule(&m)?;
619 Ok(())
620 }
621
622 fn create_observability_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
623 let m = PyModule::new(parent.py(), "observability")?;
624 m.add_class::<crate::observability::RiObservabilityModule>()?;
625 m.add_class::<crate::observability::RiObservabilityConfig>()?;
626 m.add_class::<crate::observability::RiObservabilityData>()?;
627 m.add_class::<crate::observability::RiMetricsRegistry>()?;
628 m.add_class::<crate::observability::RiTracer>()?;
629 m.add_class::<crate::observability::RiMetricType>()?;
630 m.add_class::<crate::observability::RiMetricConfig>()?;
631 m.add_class::<crate::observability::RiMetricSample>()?;
632 m.add_class::<crate::observability::RiMetric>()?;
633 #[cfg(feature = "system_info")]
634 {
635 m.add_class::<crate::observability::RiSystemMetricsCollector>()?;
636 m.add_class::<crate::observability::RiSystemMetrics>()?;
637 m.add_class::<crate::observability::RiCPUMetrics>()?;
638 m.add_class::<crate::observability::RiMemoryMetrics>()?;
639 m.add_class::<crate::observability::RiDiskMetrics>()?;
640 m.add_class::<crate::observability::RiNetworkMetrics>()?;
641 }
642 parent.add_submodule(&m)?;
643 Ok(())
644 }
645
646 fn create_queue_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
647 let m = PyModule::new(parent.py(), "queue")?;
648 m.add_class::<crate::queue::RiQueueModule>()?;
649 m.add_class::<crate::queue::RiQueueConfig>()?;
650 m.add_class::<crate::queue::RiQueueManager>()?;
651 m.add_class::<crate::queue::RiQueueMessage>()?;
652 m.add_class::<crate::queue::RiQueueStats>()?;
653 m.add_class::<crate::queue::RiQueueBackendType>()?;
654 m.add_class::<crate::queue::RiRetryPolicy>()?;
655 m.add_class::<crate::queue::RiDeadLetterConfig>()?;
656 parent.add_submodule(&m)?;
657 Ok(())
658 }
659
660 fn create_gateway_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
661 let m = PyModule::new(parent.py(), "gateway")?;
662 m.add_class::<crate::gateway::RiGateway>()?;
663 m.add_class::<crate::gateway::RiGatewayConfig>()?;
664 m.add_class::<crate::gateway::RiRoute>()?;
665 m.add_class::<crate::gateway::RiRouter>()?;
666 m.add_class::<crate::gateway::rate_limiter::RiRateLimiter>()?;
667 m.add_class::<crate::gateway::rate_limiter::RiRateLimitConfig>()?;
668 m.add_class::<crate::gateway::rate_limiter::RiRateLimitStats>()?;
669 m.add_class::<crate::gateway::rate_limiter::RiSlidingWindowRateLimiter>()?;
670 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreaker>()?;
671 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerConfig>()?;
672 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerState>()?;
673 m.add_class::<crate::gateway::circuit_breaker::RiCircuitBreakerMetrics>()?;
674 m.add_class::<crate::gateway::load_balancer::RiBackendServer>()?;
675 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerServerStats>()?;
676 m.add_class::<crate::gateway::load_balancer::RiLoadBalancer>()?;
677 m.add_class::<crate::gateway::load_balancer::RiLoadBalancerStrategy>()?;
678 parent.add_submodule(&m)?;
679 Ok(())
680 }
681
682 fn create_service_mesh_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
683 let m = PyModule::new(parent.py(), "service_mesh")?;
684 m.add_class::<crate::service_mesh::RiServiceMesh>()?;
685 m.add_class::<crate::service_mesh::RiServiceMeshConfig>()?;
686 m.add_class::<crate::service_mesh::RiServiceDiscovery>()?;
687 m.add_class::<crate::service_mesh::RiServiceInstance>()?;
688 m.add_class::<crate::service_mesh::RiServiceStatus>()?;
689 m.add_class::<crate::service_mesh::RiServiceMeshStats>()?;
690 m.add_class::<crate::service_mesh::RiServiceEndpoint>()?;
691 m.add_class::<crate::service_mesh::RiServiceHealthStatus>()?;
692 m.add_class::<crate::service_mesh::health_check::RiHealthChecker>()?;
693 m.add_class::<crate::service_mesh::health_check::RiHealthSummary>()?;
694 m.add_class::<crate::service_mesh::health_check::RiHealthCheckType>()?;
695 m.add_class::<crate::service_mesh::traffic_management::RiTrafficManager>()?;
696 m.add_class::<crate::service_mesh::traffic_management::RiTrafficRoute>()?;
697 m.add_class::<crate::service_mesh::traffic_management::RiMatchCriteria>()?;
698 m.add_class::<crate::service_mesh::traffic_management::RiRouteAction>()?;
699 m.add_class::<crate::service_mesh::traffic_management::RiWeightedDestination>()?;
700 parent.add_submodule(&m)?;
701 Ok(())
702 }
703
704 fn create_auth_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
705 let m = PyModule::new(parent.py(), "auth")?;
706 m.add_class::<crate::auth::RiAuthModule>()?;
707 m.add_class::<crate::auth::RiAuthConfig>()?;
708 m.add_class::<crate::auth::RiJWTManager>()?;
709 m.add_class::<crate::auth::RiJWTClaims>()?;
710 m.add_class::<crate::auth::RiJWTValidationOptions>()?;
711 m.add_class::<crate::auth::RiSessionManager>()?;
712 m.add_class::<crate::auth::RiSession>()?;
713 m.add_class::<crate::auth::RiPermissionManager>()?;
714 m.add_class::<crate::auth::RiPermission>()?;
715 m.add_class::<crate::auth::RiRole>()?;
716 m.add_class::<crate::auth::RiOAuthManager>()?;
717 m.add_class::<crate::auth::RiOAuthToken>()?;
718 m.add_class::<crate::auth::RiOAuthUserInfo>()?;
719 m.add_class::<crate::auth::RiOAuthProvider>()?;
720 m.add_class::<crate::auth::RiJWTRevocationList>()?;
721 m.add_class::<crate::auth::RiRevokedTokenInfo>()?;
722 m.add_class::<crate::auth::RiSecurityManager>()?;
723 parent.add_submodule(&m)?;
724 Ok(())
725 }
726
727 fn create_database_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
728 let m = PyModule::new(parent.py(), "database")?;
729 m.add_class::<crate::database::RiDatabaseConfig>()?;
730 m.add_class::<crate::database::RiDatabasePool>()?;
731 m.add_class::<crate::database::RiDBRow>()?;
732 m.add_class::<crate::database::RiDBResult>()?;
733 m.add_class::<crate::database::RiDynamicPoolConfig>()?;
734 m.add_class::<crate::database::RiDatabaseMetrics>()?;
735 m.add_class::<crate::database::orm::ColumnDefinition>()?;
736 m.add_class::<crate::database::orm::IndexDefinition>()?;
737 m.add_class::<crate::database::orm::ForeignKeyDefinition>()?;
738 m.add_class::<crate::database::orm::TableDefinition>()?;
739 m.add_class::<crate::database::orm::ComparisonOperator>()?;
740 m.add_class::<crate::database::orm::LogicalOperator>()?;
741 m.add_class::<crate::database::orm::Criteria>()?;
742 m.add_class::<crate::database::orm::JoinClause>()?;
743 m.add_class::<crate::database::orm::SortOrder>()?;
744 m.add_class::<crate::database::orm::Pagination>()?;
745 m.add_class::<crate::database::orm::QueryBuilder>()?;
746 m.add_class::<crate::database::orm::JoinType>()?;
747 m.add_class::<crate::database::orm::RiPyORMRepository>()?;
748 parent.add_submodule(&m)?;
749 Ok(())
750 }
751
752 fn create_validation_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
753 let m = PyModule::new(parent.py(), "validation")?;
754 m.add_class::<crate::validation::RiValidationError>()?;
755 m.add_class::<crate::validation::RiValidationResult>()?;
756 m.add_class::<crate::validation::RiValidationSeverity>()?;
757 m.add_class::<crate::validation::RiValidatorBuilder>()?;
758 m.add_class::<crate::validation::RiValidationRunner>()?;
759 m.add_class::<crate::validation::RiSanitizer>()?;
760 m.add_class::<crate::validation::RiSanitizationConfig>()?;
761 m.add_class::<crate::validation::RiSchemaValidator>()?;
762 m.add_class::<crate::validation::RiValidationModule>()?;
763 parent.add_submodule(&m)?;
764 Ok(())
765 }
766
767 #[cfg(feature = "protocol")]
768 fn create_protocol_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
769 let m = PyModule::new(_parent.py(), "protocol")?;
770 m.add_class::<crate::protocol::RiProtocolManager>()?;
771 m.add_class::<crate::protocol::RiProtocolType>()?;
772 m.add_class::<crate::protocol::RiProtocolConfig>()?;
773 m.add_class::<crate::protocol::RiProtocolStatus>()?;
774 m.add_class::<crate::protocol::RiProtocolStats>()?;
775 m.add_class::<crate::protocol::RiConnectionState>()?;
776 m.add_class::<crate::protocol::RiConnectionStats>()?;
777 m.add_class::<crate::protocol::RiProtocolHealth>()?;
778 m.add_class::<crate::protocol::RiFrame>()?;
779 m.add_class::<crate::protocol::RiFrameHeader>()?;
780 m.add_class::<crate::protocol::RiFrameType>()?;
781 m.add_class::<crate::protocol::RiConnectionInfo>()?;
782 m.add_class::<crate::protocol::RiMessageFlags>()?;
783 m.add_class::<crate::protocol::RiSecurityLevel>()?;
784 m.add_class::<crate::protocol::frames::RiFrameParser>()?;
785 m.add_class::<crate::protocol::frames::RiFrameBuilder>()?;
786 _parent.add_submodule(&m)?;
787 Ok(())
788 }
789
790 fn create_grpc_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
791 #[cfg(all(feature = "grpc", feature = "pyo3"))]
792 {
793 let m = PyModule::new(_parent.py(), "grpc")?;
794 m.add_class::<crate::grpc::RiGrpcConfig>()?;
795 m.add_class::<crate::grpc::RiGrpcStats>()?;
796 m.add_class::<crate::grpc::RiGrpcServiceRegistryPy>()?;
797 m.add_class::<crate::grpc::RiGrpcServerPy>()?;
798 m.add_class::<crate::grpc::RiGrpcClientPy>()?;
799 _parent.add_submodule(&m)?;
800 }
801 #[cfg(not(all(feature = "grpc", feature = "pyo3")))]
802 {
803 let _ = _parent;
804 }
805 Ok(())
806 }
807
808 fn create_ws_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
809 #[cfg(all(feature = "websocket", feature = "pyo3"))]
810 {
811 let m = PyModule::new(_parent.py(), "ws")?;
812 m.add_class::<crate::ws::RiWSServerConfig>()?;
813 m.add_class::<crate::ws::RiWSEvent>()?;
814 m.add_class::<crate::ws::RiWSSessionInfo>()?;
815 m.add_class::<crate::ws::RiWSServerStats>()?;
816 m.add_class::<crate::ws::RiWSPythonHandler>()?;
817 m.add_class::<crate::ws::RiWSSessionManagerPy>()?;
818 m.add_class::<crate::ws::RiWSServerPy>()?;
819 m.add_class::<crate::ws::RiWSClientConfig>()?;
820 m.add_class::<crate::ws::RiWSClientStats>()?;
821 m.add_class::<crate::ws::RiWSClientPy>()?;
822 _parent.add_submodule(&m)?;
823 }
824 #[cfg(not(all(feature = "websocket", feature = "pyo3")))]
825 {
826 let _ = _parent;
827 }
828 Ok(())
829 }
830}