v0.3.1: Enterprise Readiness
RingKernel v0.3.1: Enterprise Readiness
This release adds comprehensive enterprise-grade features for production deployments.
π Enterprise Security
- Real Cryptography: AES-256-GCM, ChaCha20-Poly1305, Argon2 key derivation
- Secrets Management:
SecretStoretrait with key rotation, caching, and chained stores - K2K Message Encryption: Kernel-to-kernel encryption with forward secrecy
- TLS/mTLS Support: Full TLS with rustls, certificate rotation, SNI resolution
π Authentication & Authorization
- Authentication Providers:
ApiKeyAuth,JwtAuth(RS256/HS256),ChainedAuthProvider - RBAC: Role-based access control with deny-by-default
PolicyEvaluator - Multi-tenancy:
TenantContext,ResourceQuota, usage tracking
π Observability
- OpenTelemetry: OTLP export to Jaeger, Honeycomb, Datadog, Grafana Cloud
- Structured Logging: Multi-sink logger with trace correlation (JSON/Text)
- Alert Routing: Severity-based routing with deduplication (Slack, Teams, PagerDuty)
- Remote Audit Sinks: Syslog, CloudWatch Logs, Elasticsearch
β‘ Rate Limiting
- Algorithms: TokenBucket, SlidingWindow, LeakyBucket
- Builder API: Fluent configuration with
RateLimiterBuilder - Distributed:
SharedRateLimiterfor multi-instance deployments
π§ Operational Excellence
- Automatic Recovery: Configurable policies per failure type (Restart, Migrate, Checkpoint, Notify, Escalate, Circuit)
- Operation Timeouts: Deadline propagation with
TimeoutandDeadlinetypes - Recovery Manager: Retry tracking, cooldown periods, automatic escalation
π¦ Feature Flags
[dependencies]
ringkernel-core = { version = "0.3.1", features = ["enterprise"] }
# Or select specific features:
ringkernel-core = { version = "0.3.1", features = ["crypto", "auth", "tls", "rate-limiting", "alerting"] }π Metrics
- Test Coverage: 900+ tests (up from 825+)
- Crates Published: 21 crates to crates.io
π Quick Start
use ringkernel_core::prelude::*;
// Enterprise runtime with production preset
let runtime = RuntimeBuilder::new()
.production()
.build()?;
// API key authentication
let auth = ApiKeyAuth::new()
.add_key("sk-prod-abc123", Identity::new("service-a"));
// Rate limiting
let limiter = RateLimiterBuilder::new()
.algorithm(RateLimitAlgorithm::TokenBucket)
.rate(1000)
.burst(100)
.build();Full Changelog
See CHANGELOG.md for complete details.