rustkernel_core/
lib.rs

1//! # RustKernel Core
2//!
3//! Core abstractions, traits, and registry for the RustKernels GPU kernel library.
4//!
5//! This crate provides:
6//! - Domain and kernel type definitions
7//! - Kernel metadata and configuration
8//! - Trait definitions for batch and ring kernels
9//! - Kernel registry with auto-discovery
10//! - Licensing and feature gating system
11//! - Actix actor integration for GPU-backed actors
12//! - Runtime lifecycle management (0.3.1)
13//! - Enterprise security, observability, and resilience patterns (0.3.1)
14
15#![warn(missing_docs)]
16#![warn(clippy::all)]
17
18// Core modules
19pub mod domain;
20pub mod error;
21pub mod k2k;
22pub mod kernel;
23pub mod license;
24pub mod messages;
25pub mod registry;
26pub mod slo;
27pub mod test_kernels;
28pub mod traits;
29
30// Enterprise modules (0.3.1)
31pub mod config;
32pub mod memory;
33pub mod observability;
34pub mod resilience;
35pub mod runtime;
36pub mod security;
37
38// Re-exports from ringkernel-core for convenience
39pub use ringkernel_core::{
40    HlcTimestamp, MessageHeader, MessageId, MessageQueue, RingContext, RingKernelError, RingMessage,
41};
42
43// Re-export types from specific modules
44pub use ringkernel_core::hlc::HlcClock;
45pub use ringkernel_core::k2k::{K2KBroker, K2KEndpoint, K2KMessage};
46pub use ringkernel_core::message::MessageEnvelope;
47pub use ringkernel_core::runtime::{
48    KernelHandle, KernelId, KernelState, LaunchOptions, RingKernelRuntime,
49};
50
51/// Prelude module for convenient imports
52pub mod prelude {
53    pub use crate::domain::Domain;
54    pub use crate::error::{KernelError, Result};
55    pub use crate::k2k::{
56        FanOutTracker, IterativeConvergenceSummary, IterativeState, K2KControlMessage, K2KPriority,
57        K2KWorkerResult, PipelineTracker, ScatterGatherState, kernel_id_to_u64,
58    };
59    pub use crate::kernel::{KernelMetadata, KernelMode};
60    pub use crate::license::{DevelopmentLicense, License, LicenseError, LicenseValidator};
61    pub use crate::messages::{
62        BatchMessage, CorrelationId, KernelRequest, KernelResponse, KernelResult,
63    };
64    pub use crate::registry::{KernelRegistry, RegistryStats};
65    pub use crate::slo::{SLOResult, SLOValidator};
66    pub use crate::test_kernels::{EchoKernel, MatMul, ReduceSum, VectorAdd};
67    pub use crate::traits::{
68        BatchKernel, CheckpointableKernel, DegradableKernel, ExecutionContext, GpuKernel,
69        HealthStatus, IterativeKernel, KernelConfig, RingKernelHandler, SecureRingContext,
70    };
71
72    // Runtime lifecycle (0.3.1)
73    pub use crate::runtime::{
74        KernelRuntime, LifecycleState, RuntimeBuilder, RuntimeConfig, RuntimeHandle, RuntimePreset,
75        RuntimeStats,
76    };
77
78    // Resilience patterns (0.3.1)
79    pub use crate::resilience::{
80        CircuitBreaker, CircuitBreakerConfig, CircuitState, DeadlineContext, HealthCheck,
81        HealthCheckResult, HealthProbe, RecoveryPolicy, ResilienceConfig, RetryConfig,
82        TimeoutConfig,
83    };
84
85    // Security (0.3.1)
86    pub use crate::security::{
87        AuthConfig, KernelPermission, Permission, PermissionSet, Role, SecurityConfig,
88        SecurityContext, TenantId,
89    };
90
91    // Memory management (0.3.1)
92    pub use crate::memory::{
93        AnalyticsContext, AnalyticsContextManager, InterPhaseReduction, KernelMemoryManager,
94        MemoryConfig, MemoryError, MemoryStats, PressureLevel, ReductionConfig, SyncMode,
95    };
96
97    // Production configuration (0.3.1)
98    pub use crate::config::{ProductionConfig, ProductionConfigBuilder};
99
100    // Re-exports from ringkernel-core
101    pub use ringkernel_core::k2k::{K2KBroker, K2KEndpoint};
102    pub use ringkernel_core::runtime::{KernelHandle, KernelId, KernelState, LaunchOptions};
103    pub use ringkernel_core::{HlcTimestamp, MessageId, RingContext, RingMessage};
104}