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