Skip to content

Commit c3a1c4e

Browse files
committed
feat: upgrade to RingKernel 0.4.2 with deep integration
Upgrade from ringkernel 0.3.1 to 0.4.2 with comprehensive integration: - Bump all workspace crate versions to 0.4.0 - Add bidirectional Domain conversion (Domain <-> ringkernel_core::Domain) with correct mapping (TemporalAnalysis↔TimeSeries, RiskAnalytics↔RiskManagement, Core↔General) - Remap ring message type IDs to 0.4.2 domain ranges: Graph 200→100, ML 700→200, Temporal 400→1100, Risk 600→400 - Add ringkernel-core 0.4.2 enterprise re-exports in security, observability, resilience, and memory modules (ring_security, ring_health, ring_observability, etc.) - Re-export new 0.4.2 types: ControlBlock, Backend, KernelStatus, RuntimeMetrics, K2KConfig, DeliveryStatus, Priority - Expose full ringkernel-core API via `rustkernel_core::ring` module - Add checkpoint, dispatcher, health, pubsub submodule re-exports - Update prelude with new 0.4.2 types - Update CLAUDE.md documentation for 0.4.0 All 895 tests pass, zero clippy warnings. https://claude.ai/code/session_01Duj97yQCCfNvKV9tizq22m
1 parent 7966db2 commit c3a1c4e

15 files changed

Lines changed: 458 additions & 172 deletions

File tree

CLAUDE.md

Lines changed: 69 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ RustKernels is a GPU-accelerated kernel library for financial services, analytic
88

99
**Current State**: 106 kernels across 14 domain crates, fully implemented with both Batch and Ring execution modes.
1010

11-
**Version**: 0.3.1 - Enterprise-ready with security, observability, resilience, and service APIs.
11+
**Version**: 0.4.0 - Deep integration with RingKernel 0.4.2. Enterprise-ready with security, observability, resilience, and service APIs.
1212

13-
**Key dependency**: RustCompute (RingKernel) 0.3.1 - located at `../../RustCompute/RustCompute/` (relative path from workspace root).
13+
**Key dependency**: RingKernel 0.4.2 (crates.io) - GPU-native persistent actor runtime with enterprise features.
1414

1515
## Build Commands
1616

@@ -159,12 +159,15 @@ Cross-kernel coordination in `rustkernel-core/src/k2k.rs`:
159159

160160
### Ring Message Type IDs
161161

162-
Each domain has a reserved range for Ring message type IDs:
163-
- Graph: 200-299
162+
Each domain has a reserved range for Ring message type IDs, aligned with
163+
`ringkernel_core::domain::Domain` base offsets (0.4.2):
164+
165+
- Graph (GraphAnalytics): 100-199
166+
- ML (StatisticalML): 200-299
164167
- Compliance: 300-399
165-
- Temporal: 400-499
166-
- Risk: 600-699
167-
- ML: 700-799
168+
- Risk (RiskManagement): 400-499
169+
- OrderMatching: 500-599
170+
- Temporal (TimeSeries): 1100-1199
168171

169172
### Domain Crate Structure
170173

@@ -187,15 +190,15 @@ use rkyv::{Archive, Serialize, Deserialize};
187190

188191
#[derive(Debug, Clone, Archive, Serialize, Deserialize, RingMessage)]
189192
#[archive(check_bytes)]
190-
#[message(type_id = 200)] // Unique within domain range
193+
#[message(type_id = 100)] // Unique within domain range (GraphAnalytics: 100-199)
191194
pub struct MyRequest {
192195
#[message(id)]
193196
pub id: MessageId,
194197
pub data: u64,
195198
}
196199
```
197200

198-
**Important**: `MessageId` is a tuple struct. Use `MessageId(value)` not `MessageId::new()`.
201+
**Important**: `MessageId` supports both `MessageId(value)` and `MessageId::new(value)` (0.4.2+). For auto-generated IDs, use `MessageId::generate()`.
199202

200203
### Fixed-Point Arithmetic
201204

@@ -283,7 +286,63 @@ The following kernel categories were recently added:
283286
- `NextActivityPrediction` - Markov/N-gram next activity prediction
284287
- `EventLogImputation` - Event log quality detection and repair
285288

286-
## Enterprise Modules (0.3.1)
289+
## RingKernel 0.4.2 Integration
290+
291+
RustKernels 0.4.0 deeply integrates with RingKernel 0.4.2:
292+
293+
### Domain Conversion
294+
295+
Bidirectional conversion between `rustkernel_core::domain::Domain` and `ringkernel_core::domain::Domain`:
296+
297+
```rust
298+
use rustkernel_core::domain::Domain;
299+
300+
let domain = Domain::TemporalAnalysis;
301+
let ring_domain = domain.to_ring_domain(); // → ringkernel_core::domain::Domain::TimeSeries
302+
let back = Domain::from_ring_domain(ring_domain); // → Domain::TemporalAnalysis
303+
304+
// Naming differences:
305+
// TemporalAnalysis ↔ TimeSeries
306+
// RiskAnalytics ↔ RiskManagement
307+
// Core ↔ General
308+
```
309+
310+
### Direct RingKernel Access
311+
312+
For advanced usage, the full ringkernel-core 0.4.2 API is available:
313+
314+
```rust
315+
use rustkernel_core::ring; // Full ringkernel_core re-export
316+
317+
// New 0.4.2 types in prelude
318+
use rustkernel_core::prelude::{Backend, KernelStatus, RuntimeMetrics, ControlBlock, K2KConfig, Priority};
319+
320+
// Enterprise re-exports from ringkernel-core in each module:
321+
use rustkernel_core::security::ring_security;
322+
use rustkernel_core::observability::ring_observability;
323+
use rustkernel_core::resilience::ring_health;
324+
use rustkernel_core::memory::ring_memory;
325+
```
326+
327+
### New Re-exports
328+
329+
Top-level re-exports from ringkernel-core 0.4.2:
330+
331+
- `ControlBlock` - GPU control block for persistent kernel state
332+
- `Backend` - Runtime backend selection (CUDA, CPU, WebGPU)
333+
- `KernelStatus` - Detailed kernel status information
334+
- `RuntimeMetrics` - Runtime performance metrics
335+
- `K2KConfig` - Kernel-to-kernel messaging configuration
336+
- `DeliveryStatus` - K2K message delivery tracking
337+
- `Priority` - Message priority levels
338+
339+
Submodule re-exports:
340+
- `rustkernel_core::checkpoint` - Kernel checkpointing
341+
- `rustkernel_core::dispatcher` - Message dispatching
342+
- `rustkernel_core::health` - Health checking (circuit breaker, degradation)
343+
- `rustkernel_core::pubsub` - Pub/sub messaging patterns
344+
345+
## Enterprise Modules
287346

288347
### Security (`rustkernel-core/src/security/`)
289348

Cargo.lock

Lines changed: 29 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)