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::{DMSCAppBuilder, DMSCAppRuntime};
119 pub use crate::core::DMSCServiceContext;
121 pub use crate::core::DMSCModule;
123 pub use crate::core::DMSCError;
125 pub use crate::core::DMSCResult;
127
128 #[cfg(feature = "pyo3")]
132 pub use crate::core::DMSCLockError;
133
134 #[cfg(feature = "pyo3")]
136 pub use crate::core::{DMSCPythonModule, DMSCPythonModuleAdapter, DMSCPythonServiceModule, DMSCPythonAsyncServiceModule};
137
138 #[cfg(feature = "pyo3")]
140 pub use crate::core::{DMSCErrorChain, DMSCErrorChainIter, DMSCErrorContext, DMSCOptionErrorContext};
141
142 #[cfg(feature = "pyo3")]
144 pub use crate::core::{DMSCHealthStatus, DMSCHealthCheckResult, DMSCHealthCheckConfig, DMSCHealthReport, DMSCHealthChecker};
145
146 #[cfg(feature = "pyo3")]
148 pub use crate::service_mesh::health_check::{DMSCHealthCheckType, DMSCHealthSummary};
149
150 #[cfg(feature = "pyo3")]
152 pub use crate::core::DMSCLifecycleObserver;
153
154 #[cfg(feature = "pyo3")]
156 pub use crate::core::DMSCLogAnalyticsModule;
157
158 pub use crate::fs::DMSCFileSystem;
160
161 pub use crate::log::DMSCLogger;
163 pub use crate::log::DMSCLogConfig;
165 pub use crate::log::DMSCLogLevel;
167
168 pub use crate::config::DMSCConfig;
170 pub use crate::config::DMSCConfigManager;
172
173 pub use crate::hooks::DMSCHookBus;
175 pub use crate::hooks::DMSCHookEvent;
177 pub use crate::hooks::DMSCHookKind;
179 pub use crate::hooks::DMSCModulePhase;
181
182 pub use crate::cache::DMSCCacheModule;
184 pub use crate::cache::DMSCCacheConfig;
186
187 pub use crate::queue::DMSCQueueModule;
189 pub use crate::queue::DMSCQueueConfig;
191
192 pub use crate::gateway::DMSCGateway;
194 pub use crate::gateway::DMSCGatewayConfig;
196 pub use crate::gateway::DMSCRoute;
198 pub use crate::gateway::DMSCRouter;
200 pub use crate::gateway::load_balancer::DMSCBackendServer;
202 pub use crate::gateway::load_balancer::DMSCLoadBalancerServerStats;
204 pub use crate::gateway::load_balancer::DMSCLoadBalancer;
206 pub use crate::gateway::load_balancer::DMSCLoadBalancerStrategy;
208
209 pub use crate::device::DMSCDeviceControlModule;
211 pub use crate::device::DMSCDeviceControlConfig;
213 pub use crate::device::DMSCDeviceSchedulingConfig;
215 pub use crate::device::DMSCDevice;
217 pub use crate::device::DMSCDeviceType;
219
220 pub use crate::auth::DMSCAuthModule;
222 pub use crate::auth::DMSCAuthConfig;
224
225 pub use crate::service_mesh::DMSCServiceMesh;
227 pub use crate::service_mesh::DMSCServiceMeshConfig;
229 pub use crate::service_mesh::DMSCServiceMeshStats;
231 pub use crate::service_mesh::DMSCServiceEndpoint;
233 pub use crate::service_mesh::DMSCServiceHealthStatus;
235
236 pub use crate::observability::DMSCObservabilityModule;
238 pub use crate::observability::DMSCObservabilityConfig;
240 pub use crate::observability::DMSCTracer;
242 pub use crate::observability::DMSCMetricsRegistry;
244
245 pub use crate::database::DMSCDatabaseConfig;
247 pub use crate::database::DatabaseType;
249 pub use crate::database::DMSCDatabasePool;
251 pub use crate::database::DMSCDBRow;
253 pub use crate::database::DMSCDBResult;
255
256 pub use crate::module_rpc::DMSCModuleRPC;
258 pub use crate::module_rpc::DMSCModuleClient;
260 pub use crate::module_rpc::DMSCModuleEndpoint;
262 pub use crate::module_rpc::DMSCMethodCall;
264 pub use crate::module_rpc::DMSCMethodResponse;
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 dmsc(m: &Bound<'_, PyModule>) -> PyResult<()> {
278 m.add_class::<DMSCAppBuilder>()?;
280 m.add_class::<DMSCAppRuntime>()?;
281 m.add_class::<DMSCConfig>()?;
282 m.add_class::<DMSCConfigManager>()?;
283 m.add_class::<DMSCError>()?;
284 m.add_class::<DMSCServiceContext>()?;
285
286 m.add_class::<crate::core::module::DMSCPythonModule>()?;
288 m.add_class::<crate::core::module::DMSCPythonModuleAdapter>()?;
289 m.add_class::<crate::core::module::DMSCPythonServiceModule>()?;
290 m.add_class::<crate::core::module::DMSCPythonAsyncServiceModule>()?;
291
292 m.add_class::<DMSCLogger>()?;
294 m.add_class::<DMSCLogConfig>()?;
295 m.add_class::<DMSCLogLevel>()?;
296 m.add_class::<DMSCFileSystem>()?;
297 m.add_class::<DMSCHookBus>()?;
298 m.add_class::<DMSCHookEvent>()?;
299 m.add_class::<DMSCHookKind>()?;
300 m.add_class::<DMSCModulePhase>()?;
301
302 m.add_class::<crate::core::DMSCLockError>()?;
304
305 m.add_class::<crate::core::DMSCHealthStatus>()?;
307 m.add_class::<crate::core::DMSCHealthCheckResult>()?;
308 m.add_class::<crate::core::DMSCHealthCheckConfig>()?;
309 m.add_class::<crate::core::DMSCHealthReport>()?;
310 m.add_class::<crate::service_mesh::health_check::DMSCHealthCheckType>()?;
311 m.add_class::<crate::service_mesh::health_check::DMSCHealthSummary>()?;
312 m.add_class::<crate::service_mesh::traffic_management::DMSCTrafficManager>()?;
313
314 m.add_class::<crate::core::DMSCLifecycleObserver>()?;
316
317 m.add_class::<crate::core::DMSCLogAnalyticsModule>()?;
319
320 m.add_class::<crate::cache::DMSCCacheModule>()?;
322 m.add_class::<crate::cache::DMSCCacheManager>()?;
323 m.add_class::<crate::cache::DMSCCacheConfig>()?;
324 m.add_class::<crate::cache::DMSCCacheBackendType>()?;
325 m.add_class::<crate::cache::DMSCCachePolicy>()?;
326 m.add_class::<crate::cache::DMSCCacheStats>()?;
327 m.add_class::<crate::cache::DMSCCachedValue>()?;
328 m.add_class::<crate::cache::DMSCCacheEvent>()?;
329
330 m.add_class::<crate::queue::DMSCQueueModule>()?;
332 m.add_class::<crate::queue::DMSCQueueConfig>()?;
333 m.add_class::<crate::queue::DMSCQueueManager>()?;
334 m.add_class::<crate::queue::DMSCQueueMessage>()?;
335 m.add_class::<crate::queue::DMSCQueueStats>()?;
336 m.add_class::<crate::queue::DMSCQueueBackendType>()?;
337 m.add_class::<crate::queue::DMSCRetryPolicy>()?;
338 m.add_class::<crate::queue::DMSCDeadLetterConfig>()?;
339
340 m.add_class::<crate::gateway::DMSCGateway>()?;
342 m.add_class::<crate::gateway::DMSCGatewayConfig>()?;
343 m.add_class::<crate::gateway::DMSCRouter>()?;
344 m.add_class::<crate::gateway::DMSCRoute>()?;
345 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimiter>()?;
346 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimitConfig>()?;
347 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimitStats>()?;
348 m.add_class::<crate::gateway::rate_limiter::DMSCSlidingWindowRateLimiter>()?;
349 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreaker>()?;
350 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerConfig>()?;
351 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerState>()?;
352 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerMetrics>()?;
353
354 m.add_class::<crate::gateway::load_balancer::DMSCBackendServer>()?;
356 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancerServerStats>()?;
357 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancer>()?;
358 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancerStrategy>()?;
359
360 m.add_class::<crate::service_mesh::DMSCServiceMesh>()?;
362 m.add_class::<crate::service_mesh::DMSCServiceMeshConfig>()?;
363 m.add_class::<crate::service_mesh::DMSCServiceDiscovery>()?;
364 m.add_class::<crate::service_mesh::DMSCServiceInstance>()?;
365 m.add_class::<crate::service_mesh::DMSCServiceStatus>()?;
366 m.add_class::<crate::service_mesh::DMSCServiceMeshStats>()?;
367 m.add_class::<crate::service_mesh::DMSCServiceEndpoint>()?;
368 m.add_class::<crate::service_mesh::DMSCServiceHealthStatus>()?;
369 m.add_class::<crate::service_mesh::health_check::DMSCHealthChecker>()?;
370 m.add_class::<crate::service_mesh::health_check::DMSCHealthSummary>()?;
371 m.add_class::<crate::service_mesh::traffic_management::DMSCTrafficManager>()?;
372 m.add_class::<crate::service_mesh::DMSCTrafficRoute>()?;
373 m.add_class::<crate::service_mesh::DMSCMatchCriteria>()?;
374 m.add_class::<crate::service_mesh::DMSCRouteAction>()?;
375 m.add_class::<crate::service_mesh::DMSCWeightedDestination>()?;
376
377 m.add_class::<crate::auth::DMSCAuthModule>()?;
379 m.add_class::<crate::auth::DMSCAuthConfig>()?;
380 m.add_class::<crate::auth::DMSCJWTManager>()?;
381 m.add_class::<crate::auth::DMSCJWTClaims>()?;
382 m.add_class::<crate::auth::DMSCJWTValidationOptions>()?;
383 m.add_class::<crate::auth::DMSCSessionManager>()?;
384 m.add_class::<crate::auth::DMSCSession>()?;
385 m.add_class::<crate::auth::DMSCPermissionManager>()?;
386 m.add_class::<crate::auth::DMSCOAuthManager>()?;
387 m.add_class::<crate::auth::DMSCOAuthToken>()?;
388 m.add_class::<crate::auth::DMSCOAuthUserInfo>()?;
389 m.add_class::<crate::auth::DMSCOAuthProvider>()?;
390 m.add_class::<crate::auth::DMSCPermission>()?;
391 m.add_class::<crate::auth::DMSCRole>()?;
392 m.add_class::<crate::auth::DMSCJWTRevocationList>()?;
393 m.add_class::<crate::auth::DMSCRevokedTokenInfo>()?;
394
395 m.add_class::<crate::observability::DMSCObservabilityModule>()?;
397 m.add_class::<crate::observability::DMSCObservabilityConfig>()?;
398 m.add_class::<crate::observability::DMSCMetricsRegistry>()?;
399 m.add_class::<crate::observability::DMSCTracer>()?;
400 m.add_class::<crate::observability::DMSCMetricType>()?;
401 m.add_class::<crate::observability::DMSCMetricConfig>()?;
402 m.add_class::<crate::observability::DMSCMetricSample>()?;
403 m.add_class::<crate::observability::DMSCMetric>()?;
404 m.add_class::<crate::observability::DMSCObservabilityData>()?;
405
406 #[cfg(feature = "system_info")]
408 {
409 m.add_class::<crate::observability::DMSCSystemMetricsCollector>()?;
410 m.add_class::<crate::observability::DMSCSystemMetrics>()?;
411 m.add_class::<crate::observability::DMSCCPUMetrics>()?;
412 m.add_class::<crate::observability::DMSCMemoryMetrics>()?;
413 m.add_class::<crate::observability::DMSCDiskMetrics>()?;
414 m.add_class::<crate::observability::DMSCNetworkMetrics>()?;
415 }
416
417 m.add_class::<crate::validation::DMSCValidationError>()?;
419 m.add_class::<crate::validation::DMSCValidationResult>()?;
420 m.add_class::<crate::validation::DMSCValidationSeverity>()?;
421 m.add_class::<crate::validation::DMSCValidatorBuilder>()?;
422 m.add_class::<crate::validation::DMSCValidationRunner>()?;
423 m.add_class::<crate::validation::DMSCSanitizer>()?;
424 m.add_class::<crate::validation::DMSCSanitizationConfig>()?;
425 m.add_class::<crate::validation::DMSCSchemaValidator>()?;
426 m.add_class::<crate::validation::DMSCValidationModule>()?;
427
428 #[cfg(feature = "protocol")]
430 {
431 m.add_class::<crate::protocol::DMSCProtocolManager>()?;
432 m.add_class::<crate::protocol::DMSCProtocolType>()?;
433 m.add_class::<crate::protocol::DMSCProtocolConfig>()?;
434 m.add_class::<crate::protocol::DMSCProtocolStatus>()?;
435 m.add_class::<crate::protocol::DMSCProtocolStats>()?;
436 m.add_class::<crate::protocol::DMSCConnectionState>()?;
437 m.add_class::<crate::protocol::DMSCConnectionStats>()?;
438 m.add_class::<crate::protocol::DMSCProtocolHealth>()?;
439 m.add_class::<crate::protocol::DMSCFrame>()?;
440 m.add_class::<crate::protocol::DMSCFrameHeader>()?;
441 m.add_class::<crate::protocol::DMSCFrameType>()?;
442 m.add_class::<crate::protocol::DMSCConnectionInfo>()?;
443 m.add_class::<crate::protocol::DMSCMessageFlags>()?;
444 m.add_class::<crate::protocol::DMSCSecurityLevel>()?;
445 m.add_class::<crate::protocol::frames::DMSCFrameParser>()?;
446 m.add_class::<crate::protocol::frames::DMSCFrameBuilder>()?;
447 }
448
449 m.add_class::<crate::database::DMSCDatabaseConfig>()?;
451 m.add_class::<crate::database::DMSCDatabasePool>()?;
452 m.add_class::<crate::database::DMSCDBRow>()?;
453 m.add_class::<crate::database::DMSCDBResult>()?;
454 m.add_class::<crate::database::orm::DMSCPyORMRepository>()?;
455
456 #[cfg(all(feature = "grpc", feature = "pyo3"))]
458 {
459 m.add_class::<crate::grpc::DMSCGrpcConfig>()?;
460 m.add_class::<crate::grpc::DMSCGrpcStats>()?;
461 m.add_class::<crate::grpc::DMSCGrpcServiceRegistryPy>()?;
462 m.add_class::<crate::grpc::DMSCGrpcServerPy>()?;
463 m.add_class::<crate::grpc::DMSCGrpcClientPy>()?;
464 }
465
466 #[cfg(all(feature = "websocket", feature = "pyo3"))]
468 {
469 m.add_class::<crate::ws::DMSCWSServerConfig>()?;
470 m.add_class::<crate::ws::DMSCWSEvent>()?;
471 m.add_class::<crate::ws::DMSCWSSessionInfo>()?;
472 m.add_class::<crate::ws::DMSCWSServerStats>()?;
473 m.add_class::<crate::ws::DMSCWSPythonHandler>()?;
474 m.add_class::<crate::ws::DMSCWSSessionManagerPy>()?;
475 m.add_class::<crate::ws::DMSCWSServerPy>()?;
476 m.add_class::<crate::ws::DMSCWSClientConfig>()?;
477 m.add_class::<crate::ws::DMSCWSClientStats>()?;
478 m.add_class::<crate::ws::DMSCWSClientPy>()?;
479 }
480
481 m.add_class::<crate::module_rpc::DMSCModuleRPC>()?;
483 m.add_class::<crate::module_rpc::DMSCModuleClient>()?;
484 m.add_class::<crate::module_rpc::DMSCModuleEndpoint>()?;
485 m.add_class::<crate::module_rpc::DMSCMethodCall>()?;
486 m.add_class::<crate::module_rpc::DMSCMethodResponse>()?;
487
488 m.add_class::<crate::device::DMSCDeviceControlModule>()?;
490 m.add_class::<crate::device::DMSCDevice>()?;
491 m.add_class::<crate::device::DMSCDeviceType>()?;
492 m.add_class::<crate::device::DMSCDeviceStatus>()?;
493 m.add_class::<crate::device::DMSCDeviceCapabilities>()?;
494 m.add_class::<crate::device::DMSCDeviceHealthMetrics>()?;
495 m.add_class::<crate::device::DMSCDeviceController>()?;
496 m.add_class::<crate::device::DMSCDeviceConfig>()?;
497 m.add_class::<crate::device::DMSCDeviceControlConfig>()?;
498 m.add_class::<crate::device::DMSCDeviceSchedulingConfig>()?;
499 m.add_class::<crate::device::DMSCNetworkDeviceInfo>()?;
500 m.add_class::<crate::device::DMSCDiscoveryResult>()?;
501 m.add_class::<crate::device::DMSCResourceRequest>()?;
502 m.add_class::<crate::device::DMSCResourceAllocation>()?;
503 m.add_class::<crate::device::DMSCRequestSlaClass>()?;
504 m.add_class::<crate::device::DMSCResourceWeights>()?;
505 m.add_class::<crate::device::DMSCAffinityRules>()?;
506 m.add_class::<crate::device::DMSCResourcePoolStatus>()?;
507 m.add_class::<crate::device::pool::DMSCResourcePool>()?;
508 m.add_class::<crate::device::pool::DMSCResourcePoolConfig>()?;
509 m.add_class::<crate::device::pool::DMSCResourcePoolStatistics>()?;
510 m.add_class::<crate::device::pool::DMSCResourcePoolManager>()?;
511 m.add_class::<crate::device::pool::DMSCConnectionPoolStatistics>()?;
512 m.add_class::<crate::device::scheduler::DMSCResourceScheduler>()?;
513 m.add_class::<crate::device::scheduler::DMSCDeviceScheduler>()?;
514 m.add_class::<crate::device::scheduler::DMSCSchedulingPolicy>()?;
515 m.add_class::<crate::device::scheduler::DMSCAllocationRecord>()?;
516 m.add_class::<crate::device::scheduler::DMSCAllocationRequest>()?;
517 m.add_class::<crate::device::scheduler::DMSCAllocationStatistics>()?;
518 m.add_class::<crate::device::scheduler::DMSCDeviceTypeStatistics>()?;
519 m.add_class::<crate::device::scheduler::DMSCSchedulingRecommendation>()?;
520 m.add_class::<crate::device::scheduler::DMSCSchedulingRecommendationType>()?;
521 m.add_class::<crate::device::DMSCDeviceDiscoveryEngine>()?;
522
523 m.add_class::<crate::database::DMSCDatabaseMigration>()?;
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::DMSCDeviceControlModule>()?;
550 m.add_class::<crate::device::DMSCDevice>()?;
551 m.add_class::<crate::device::DMSCDeviceType>()?;
552 m.add_class::<crate::device::DMSCDeviceStatus>()?;
553 m.add_class::<crate::device::DMSCDeviceCapabilities>()?;
554 m.add_class::<crate::device::DMSCDeviceHealthMetrics>()?;
555 m.add_class::<crate::device::DMSCDeviceController>()?;
556 m.add_class::<crate::device::DMSCDeviceConfig>()?;
557 m.add_class::<crate::device::DMSCDeviceControlConfig>()?;
558 m.add_class::<crate::device::DMSCDeviceSchedulingConfig>()?;
559 m.add_class::<crate::device::DMSCNetworkDeviceInfo>()?;
560 m.add_class::<crate::device::DMSCDiscoveryResult>()?;
561 m.add_class::<crate::device::DMSCResourceRequest>()?;
562 m.add_class::<crate::device::DMSCResourceAllocation>()?;
563 m.add_class::<crate::device::DMSCRequestSlaClass>()?;
564 m.add_class::<crate::device::DMSCResourceWeights>()?;
565 m.add_class::<crate::device::DMSCAffinityRules>()?;
566 m.add_class::<crate::device::pool::DMSCResourcePool>()?;
567 m.add_class::<crate::device::pool::DMSCResourcePoolConfig>()?;
568 m.add_class::<crate::device::pool::DMSCResourcePoolStatistics>()?;
569 m.add_class::<crate::device::pool::DMSCResourcePoolManager>()?;
570 m.add_class::<crate::device::pool::DMSCConnectionPoolStatistics>()?;
571 m.add_class::<crate::device::scheduler::DMSCResourceScheduler>()?;
572 m.add_class::<crate::device::scheduler::DMSCDeviceScheduler>()?;
573 m.add_class::<crate::device::scheduler::DMSCSchedulingPolicy>()?;
574 m.add_class::<crate::device::scheduler::DMSCAllocationRecord>()?;
575 m.add_class::<crate::device::scheduler::DMSCAllocationRequest>()?;
576 m.add_class::<crate::device::scheduler::DMSCAllocationStatistics>()?;
577 m.add_class::<crate::device::scheduler::DMSCDeviceTypeStatistics>()?;
578 m.add_class::<crate::device::scheduler::DMSCSchedulingRecommendation>()?;
579 m.add_class::<crate::device::scheduler::DMSCSchedulingRecommendationType>()?;
580 m.add_class::<crate::device::DMSCDeviceDiscoveryEngine>()?;
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::DMSCCacheModule>()?;
591 m.add_class::<crate::cache::DMSCCacheManager>()?;
592 m.add_class::<crate::cache::DMSCCacheConfig>()?;
593 m.add_class::<crate::cache::DMSCCacheBackendType>()?;
594 m.add_class::<crate::cache::DMSCCachePolicy>()?;
595 m.add_class::<crate::cache::DMSCCacheStats>()?;
596 m.add_class::<crate::cache::DMSCCachedValue>()?;
597 m.add_class::<crate::cache::DMSCCacheEvent>()?;
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::DMSCFileSystem>()?;
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::DMSCHookKind>()?;
613 m.add_class::<crate::hooks::DMSCModulePhase>()?;
614 m.add_class::<crate::hooks::DMSCHookEvent>()?;
615 m.add_class::<crate::hooks::DMSCHookBus>()?;
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::DMSCObservabilityModule>()?;
623 m.add_class::<crate::observability::DMSCObservabilityConfig>()?;
624 m.add_class::<crate::observability::DMSCObservabilityData>()?;
625 m.add_class::<crate::observability::DMSCMetricsRegistry>()?;
626 m.add_class::<crate::observability::DMSCTracer>()?;
627 m.add_class::<crate::observability::DMSCMetricType>()?;
628 m.add_class::<crate::observability::DMSCMetricConfig>()?;
629 m.add_class::<crate::observability::DMSCMetricSample>()?;
630 m.add_class::<crate::observability::DMSCMetric>()?;
631 #[cfg(feature = "system_info")]
632 {
633 m.add_class::<crate::observability::DMSCSystemMetricsCollector>()?;
634 m.add_class::<crate::observability::DMSCSystemMetrics>()?;
635 m.add_class::<crate::observability::DMSCCPUMetrics>()?;
636 m.add_class::<crate::observability::DMSCMemoryMetrics>()?;
637 m.add_class::<crate::observability::DMSCDiskMetrics>()?;
638 m.add_class::<crate::observability::DMSCNetworkMetrics>()?;
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::DMSCQueueModule>()?;
647 m.add_class::<crate::queue::DMSCQueueConfig>()?;
648 m.add_class::<crate::queue::DMSCQueueManager>()?;
649 m.add_class::<crate::queue::DMSCQueueMessage>()?;
650 m.add_class::<crate::queue::DMSCQueueStats>()?;
651 m.add_class::<crate::queue::DMSCQueueBackendType>()?;
652 m.add_class::<crate::queue::DMSCRetryPolicy>()?;
653 m.add_class::<crate::queue::DMSCDeadLetterConfig>()?;
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::DMSCGateway>()?;
661 m.add_class::<crate::gateway::DMSCGatewayConfig>()?;
662 m.add_class::<crate::gateway::DMSCRoute>()?;
663 m.add_class::<crate::gateway::DMSCRouter>()?;
664 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimiter>()?;
665 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimitConfig>()?;
666 m.add_class::<crate::gateway::rate_limiter::DMSCRateLimitStats>()?;
667 m.add_class::<crate::gateway::rate_limiter::DMSCSlidingWindowRateLimiter>()?;
668 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreaker>()?;
669 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerConfig>()?;
670 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerState>()?;
671 m.add_class::<crate::gateway::circuit_breaker::DMSCCircuitBreakerMetrics>()?;
672 m.add_class::<crate::gateway::load_balancer::DMSCBackendServer>()?;
673 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancerServerStats>()?;
674 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancer>()?;
675 m.add_class::<crate::gateway::load_balancer::DMSCLoadBalancerStrategy>()?;
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::DMSCServiceMesh>()?;
683 m.add_class::<crate::service_mesh::DMSCServiceMeshConfig>()?;
684 m.add_class::<crate::service_mesh::DMSCServiceDiscovery>()?;
685 m.add_class::<crate::service_mesh::DMSCServiceInstance>()?;
686 m.add_class::<crate::service_mesh::DMSCServiceStatus>()?;
687 m.add_class::<crate::service_mesh::DMSCServiceMeshStats>()?;
688 m.add_class::<crate::service_mesh::DMSCServiceEndpoint>()?;
689 m.add_class::<crate::service_mesh::DMSCServiceHealthStatus>()?;
690 m.add_class::<crate::service_mesh::health_check::DMSCHealthChecker>()?;
691 m.add_class::<crate::service_mesh::health_check::DMSCHealthSummary>()?;
692 m.add_class::<crate::service_mesh::health_check::DMSCHealthCheckType>()?;
693 m.add_class::<crate::service_mesh::traffic_management::DMSCTrafficManager>()?;
694 m.add_class::<crate::service_mesh::traffic_management::DMSCTrafficRoute>()?;
695 m.add_class::<crate::service_mesh::traffic_management::DMSCMatchCriteria>()?;
696 m.add_class::<crate::service_mesh::traffic_management::DMSCRouteAction>()?;
697 m.add_class::<crate::service_mesh::traffic_management::DMSCWeightedDestination>()?;
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::DMSCAuthModule>()?;
705 m.add_class::<crate::auth::DMSCAuthConfig>()?;
706 m.add_class::<crate::auth::DMSCJWTManager>()?;
707 m.add_class::<crate::auth::DMSCJWTClaims>()?;
708 m.add_class::<crate::auth::DMSCJWTValidationOptions>()?;
709 m.add_class::<crate::auth::DMSCSessionManager>()?;
710 m.add_class::<crate::auth::DMSCSession>()?;
711 m.add_class::<crate::auth::DMSCPermissionManager>()?;
712 m.add_class::<crate::auth::DMSCPermission>()?;
713 m.add_class::<crate::auth::DMSCRole>()?;
714 m.add_class::<crate::auth::DMSCOAuthManager>()?;
715 m.add_class::<crate::auth::DMSCOAuthToken>()?;
716 m.add_class::<crate::auth::DMSCOAuthUserInfo>()?;
717 m.add_class::<crate::auth::DMSCOAuthProvider>()?;
718 m.add_class::<crate::auth::DMSCJWTRevocationList>()?;
719 m.add_class::<crate::auth::DMSCRevokedTokenInfo>()?;
720 parent.add_submodule(&m)?;
721 Ok(())
722 }
723
724 fn create_database_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
725 let m = PyModule::new(parent.py(), "database")?;
726 m.add_class::<crate::database::DMSCDatabaseConfig>()?;
727 m.add_class::<crate::database::DMSCDBRow>()?;
728 m.add_class::<crate::database::DMSCDBResult>()?;
729 m.add_class::<crate::database::orm::ColumnDefinition>()?;
730 m.add_class::<crate::database::orm::IndexDefinition>()?;
731 m.add_class::<crate::database::orm::ForeignKeyDefinition>()?;
732 m.add_class::<crate::database::orm::TableDefinition>()?;
733 m.add_class::<crate::database::orm::ComparisonOperator>()?;
734 m.add_class::<crate::database::orm::LogicalOperator>()?;
735 m.add_class::<crate::database::orm::Criteria>()?;
736 m.add_class::<crate::database::orm::JoinClause>()?;
737 m.add_class::<crate::database::orm::SortOrder>()?;
738 m.add_class::<crate::database::orm::Pagination>()?;
739 m.add_class::<crate::database::orm::QueryBuilder>()?;
740 m.add_class::<crate::database::orm::JoinType>()?;
741 m.add_class::<crate::database::orm::DMSCPyORMRepository>()?;
742 parent.add_submodule(&m)?;
743 Ok(())
744 }
745
746 fn create_validation_module(parent: &Bound<'_, PyModule>) -> PyResult<()> {
747 let m = PyModule::new(parent.py(), "validation")?;
748 m.add_class::<crate::validation::DMSCValidationError>()?;
749 m.add_class::<crate::validation::DMSCValidationResult>()?;
750 m.add_class::<crate::validation::DMSCValidationSeverity>()?;
751 m.add_class::<crate::validation::DMSCValidatorBuilder>()?;
752 m.add_class::<crate::validation::DMSCValidationRunner>()?;
753 m.add_class::<crate::validation::DMSCSanitizer>()?;
754 m.add_class::<crate::validation::DMSCSanitizationConfig>()?;
755 m.add_class::<crate::validation::DMSCSchemaValidator>()?;
756 m.add_class::<crate::validation::DMSCValidationModule>()?;
757 parent.add_submodule(&m)?;
758 Ok(())
759 }
760
761 #[cfg(feature = "protocol")]
762 fn create_protocol_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
763 let m = PyModule::new(_parent.py(), "protocol")?;
764 m.add_class::<crate::protocol::DMSCProtocolManager>()?;
765 m.add_class::<crate::protocol::DMSCProtocolType>()?;
766 m.add_class::<crate::protocol::DMSCProtocolConfig>()?;
767 m.add_class::<crate::protocol::DMSCProtocolStatus>()?;
768 m.add_class::<crate::protocol::DMSCProtocolStats>()?;
769 m.add_class::<crate::protocol::DMSCConnectionState>()?;
770 m.add_class::<crate::protocol::DMSCConnectionStats>()?;
771 m.add_class::<crate::protocol::DMSCProtocolHealth>()?;
772 m.add_class::<crate::protocol::DMSCFrame>()?;
773 m.add_class::<crate::protocol::DMSCFrameHeader>()?;
774 m.add_class::<crate::protocol::DMSCFrameType>()?;
775 m.add_class::<crate::protocol::DMSCConnectionInfo>()?;
776 m.add_class::<crate::protocol::DMSCMessageFlags>()?;
777 m.add_class::<crate::protocol::DMSCSecurityLevel>()?;
778 m.add_class::<crate::protocol::frames::DMSCFrameParser>()?;
779 m.add_class::<crate::protocol::frames::DMSCFrameBuilder>()?;
780 _parent.add_submodule(&m)?;
781 Ok(())
782 }
783
784 fn create_grpc_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
785 #[cfg(all(feature = "grpc", feature = "pyo3"))]
786 {
787 let m = PyModule::new(_parent.py(), "grpc")?;
788 m.add_class::<crate::grpc::DMSCGrpcConfig>()?;
789 m.add_class::<crate::grpc::DMSCGrpcStats>()?;
790 m.add_class::<crate::grpc::DMSCGrpcServiceRegistryPy>()?;
791 m.add_class::<crate::grpc::DMSCGrpcServerPy>()?;
792 m.add_class::<crate::grpc::DMSCGrpcClientPy>()?;
793 _parent.add_submodule(&m)?;
794 }
795 #[cfg(not(all(feature = "grpc", feature = "pyo3")))]
796 {
797 let _ = _parent;
798 }
799 Ok(())
800 }
801
802 fn create_ws_module(_parent: &Bound<'_, PyModule>) -> PyResult<()> {
803 #[cfg(all(feature = "websocket", feature = "pyo3"))]
804 {
805 let m = PyModule::new(_parent.py(), "ws")?;
806 m.add_class::<crate::ws::DMSCWSServerConfig>()?;
807 m.add_class::<crate::ws::DMSCWSEvent>()?;
808 m.add_class::<crate::ws::DMSCWSSessionInfo>()?;
809 m.add_class::<crate::ws::DMSCWSServerStats>()?;
810 m.add_class::<crate::ws::DMSCWSPythonHandler>()?;
811 m.add_class::<crate::ws::DMSCWSSessionManagerPy>()?;
812 m.add_class::<crate::ws::DMSCWSServerPy>()?;
813 m.add_class::<crate::ws::DMSCWSClientConfig>()?;
814 m.add_class::<crate::ws::DMSCWSClientStats>()?;
815 m.add_class::<crate::ws::DMSCWSClientPy>()?;
816 _parent.add_submodule(&m)?;
817 }
818 #[cfg(not(all(feature = "websocket", feature = "pyo3")))]
819 {
820 let _ = _parent;
821 }
822 Ok(())
823 }
824}