55[ ![ License] ( https://img.shields.io/badge/license-Apache--2.0-blue.svg )] ( LICENSE )
66[ ![ Rust] ( https://img.shields.io/badge/rust-1.85%2B-orange.svg )] ( https://www.rust-lang.org )
77[ ![ Documentation] ( https://img.shields.io/badge/docs-online-green.svg )] ( https://mivertowski.github.io/RustKernels/ )
8+ [ ![ Version] ( https://img.shields.io/badge/version-0.2.0-blue.svg )] ( CHANGELOG.md )
89
910---
1011
@@ -41,6 +42,10 @@ RustKernels provides **106 GPU-accelerated algorithms** across **14 domain-speci
4142| Production reliability concerns | Ported from battle-tested C# implementations |
4243| GPU availability uncertainty | Automatic CPU fallback when CUDA unavailable |
4344| Regulatory explainability | SHAP values and feature importance kernels |
45+ | Enterprise security requirements | Auth, RBAC, multi-tenancy, secrets management |
46+ | Production observability | Metrics, tracing, logging, alerting |
47+ | Fault tolerance | Circuit breakers, retry, health checks |
48+ | Service deployment | REST, gRPC, Actix actor integrations |
4449
4550---
4651
@@ -194,13 +199,71 @@ The latest release introduces innovative kernel categories:
194199
195200---
196201
202+ ## Enterprise Features (0.2.0)
203+
204+ RustKernels 0.2.0 introduces production-ready enterprise capabilities:
205+
206+ ### Security
207+ ``` rust
208+ use rustkernel_core :: security :: {SecurityContext , Role , KernelPermission };
209+
210+ let ctx = SecurityContext :: new (user_id , tenant_id )
211+ . with_roles (vec! [Role :: KernelExecutor ])
212+ . with_permissions (vec! [KernelPermission :: Execute ]);
213+
214+ // Execute with security context
215+ kernel . execute_with_context (& ctx , input ). await ? ;
216+ ```
217+
218+ ### Resilience
219+ ``` rust
220+ use rustkernel_core :: resilience :: {CircuitBreaker , CircuitBreakerConfig };
221+
222+ let cb = CircuitBreaker :: new (CircuitBreakerConfig {
223+ failure_threshold : 5 ,
224+ success_threshold : 2 ,
225+ timeout : Duration :: from_secs (30 ),
226+ .. Default :: default ()
227+ });
228+
229+ // Execute with circuit breaker protection
230+ cb . call (|| kernel . execute (input )). await ? ;
231+ ```
232+
233+ ### Production Configuration
234+ ``` rust
235+ use rustkernel_core :: config :: ProductionConfig ;
236+
237+ // Load from environment
238+ let config = ProductionConfig :: from_env ()? ;
239+
240+ // Or use presets
241+ let config = ProductionConfig :: production ();
242+
243+ // Validate before use
244+ config . validate ()? ;
245+ ```
246+
247+ ### Service Deployment
248+ ``` rust
249+ use rustkernel_ecosystem :: axum :: {KernelRouter , RouterConfig };
250+
251+ let router = KernelRouter :: new (registry , RouterConfig :: default ());
252+ let app = router . into_router ();
253+
254+ // Endpoints: /kernels, /execute, /health, /metrics
255+ axum :: serve (listener , app ). await ? ;
256+ ```
257+
258+ ---
259+
197260## Installation
198261
199262Add RustKernels to your ` Cargo.toml ` :
200263
201264``` toml
202265[dependencies ]
203- rustkernel = " 0.1 .0"
266+ rustkernels = " 0.2 .0"
204267```
205268
206269### Feature Flags
@@ -209,13 +272,16 @@ Control which domains are compiled to optimize binary size:
209272
210273``` toml
211274# Default features (graph, ml, compliance, temporal, risk)
212- rustkernel = " 0.1 .0"
275+ rustkernels = " 0.2 .0"
213276
214277# Selective domain inclusion
215- rustkernel = { version = " 0.1 .0" , features = [" graph" , " compliance" , " procint" ] }
278+ rustkernels = { version = " 0.2 .0" , features = [" graph" , " compliance" , " procint" ] }
216279
217280# All domains
218- rustkernel = { version = " 0.1.0" , features = [" full" ] }
281+ rustkernels = { version = " 0.2.0" , features = [" full" ] }
282+
283+ # Enterprise ecosystem (REST/gRPC service)
284+ rustkernel-ecosystem = { version = " 0.2.0" , features = [" axum" , " grpc" ] }
219285```
220286
221287---
@@ -262,15 +328,18 @@ async fn main() -> Result<()> {
262328
263329```
264330┌─────────────────────────────────────────────────────────────────┐
265- │ rustkernel │
331+ │ rustkernels │
266332│ (facade crate, re-exports) │
267333├─────────────────────────────────────────────────────────────────┤
268- │ rustkernel-core │ rustkernel-derive │
269- │ - GpuKernel trait │ - #[gpu_kernel] macro │
270- │ - BatchKernel trait │ - #[derive(RingMessage)] │
271- │ - RingKernelHandler │ │
272- │ - K2K coordination │ │
273- │ - License validation │ │
334+ │ rustkernel-core (0.2.0) │ rustkernel-ecosystem (0.2.0) │
335+ │ ├── traits (Gpu/Batch/Ring) │ ├── axum (REST API) │
336+ │ ├── security (auth, RBAC) │ ├── tower (middleware) │
337+ │ ├── observability (metrics) │ ├── grpc (Tonic server) │
338+ │ ├── resilience (circuit) │ └── actix (actors) │
339+ │ ├── runtime (lifecycle) ├──────────────────────────────────┤
340+ │ ├── memory (pooling) │ rustkernel-derive │
341+ │ ├── config (production) │ - #[gpu_kernel] macro │
342+ │ └── k2k (coordination) │ - #[derive(RingMessage)] │
274343├─────────────────────────────────────────────────────────────────┤
275344│ Domain Crates (14) │
276345│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
@@ -286,7 +355,7 @@ async fn main() -> Result<()> {
286355│ │ (1) │ │ (1) │ │ (2) │ │ (2) │ │
287356│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
288357├─────────────────────────────────────────────────────────────────┤
289- │ RustCompute / RingKernel │
358+ │ RustCompute / RingKernel 0.3.1 │
290359│ (GPU execution framework) │
291360└─────────────────────────────────────────────────────────────────┘
292361```
@@ -349,5 +418,6 @@ Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for detai
349418---
350419
351420** Author** : Michael Ivertowski
352- ** Version** : 0.1 .0
421+ ** Version** : 0.2 .0
353422** Kernels** : 106 across 14 domains
423+ ** Crates** : 19 (including rustkernel-ecosystem)
0 commit comments