HydraCache 0.28.0
HydraCache 0.28.0
Status: published.
0.28.0 focuses on cluster runtime lifecycle diagnostics. The goal is to make
embedded cluster components easier to observe and shut down gracefully without
turning HydraCache into a daemon.
Highlights
- Added reusable lifecycle status/diagnostics types in
hydracache. - Exposed admission bridge background-loop lifecycle state.
- Included local client/member runtime lifecycle snapshots in cluster
diagnostics. - Surfaced lifecycle data in sandbox/actuator-style reports.
- Extended README, rustdoc, and testing docs with lifecycle examples.
Intended Shape
Applications should be able to inspect lifecycle state without scraping logs:
use hydracache::{
ClusterAdmissionBridge, ClusterLifecycleStatus, InMemoryCluster,
InMemoryClusterDiscovery,
};
use std::sync::Arc;
# #[tokio::main]
# async fn main() -> hydracache::CacheResult<()> {
let discovery = Arc::new(InMemoryClusterDiscovery::new());
let control_plane = Arc::new(InMemoryCluster::new("orders"));
let bridge = ClusterAdmissionBridge::new(discovery, control_plane);
assert_eq!(
bridge.lifecycle_diagnostics().status,
ClusterLifecycleStatus::Idle
);
let handle = bridge.start();
assert!(bridge.lifecycle_diagnostics().is_running());
handle.shutdown().await;
assert!(bridge.lifecycle_diagnostics().is_stopped());
# Ok(())
# }Client/member cache diagnostics should also describe the local runtime state:
use std::sync::Arc;
use hydracache::{HydraCache, InMemoryCluster};
# #[tokio::main]
# async fn main() -> hydracache::CacheResult<()> {
let cluster = Arc::new(InMemoryCluster::new("orders"));
let member = HydraCache::member()
.shared_cluster(cluster)
.node_id("member-a")
.start()
.await?;
let diagnostics = member.cluster_diagnostics().expect("cluster runtime");
assert!(diagnostics.lifecycle.is_running());
member.leave_cluster().await?;
assert!(member.cluster_diagnostics().unwrap().lifecycle.is_stopped());
# Ok(())
# }Validation
Focused checks:
cargo test -p hydracache --lib --locked lifecycle
cargo test -p hydracache --lib --locked admission_bridge
cargo test -p hydracache --lib --locked cluster
cargo test -p hydracache-sandbox --lib --locked openapi_document_describes_demo_and_actuator_routes
cargo test -p hydracache-sandbox --lib --locked swagger_api_exercises_library_features_and_reports
cargo test --doc -p hydracache --lockedExpected full release gate:
cargo fmt --all -- --check
cargo check --workspace --all-targets --locked
cargo test --workspace --locked
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
cargo test --doc --workspace --locked
$env:RUSTDOCFLAGS='-D warnings'; cargo doc --workspace --no-deps --lockedValidated locally on 2026-06-12 with:
cargo fmt --all -- --checkcargo check --workspace --all-targets --lockedcargo test --workspace --lockedcargo clippy --workspace --all-targets --all-features --locked -- -D warningscargo test --doc --workspace --locked$env:RUSTDOCFLAGS='-D warnings'; cargo doc --workspace --no-deps --locked
Published to crates.io on 2026-06-12:
hydracache-core 0.28.0hydracache-macros 0.28.0hydracache 0.28.0hydracache-cluster-chitchat 0.28.0hydracache-cluster-raft 0.28.0hydracache-cluster 0.28.0hydracache-cluster-transport-axum 0.28.0hydracache-observability 0.28.0hydracache-actuator-axum 0.28.0hydracache-db 0.28.0hydracache-sqlx 0.28.0
Registry metadata was verified with cargo info <crate>@0.28.0 --registry crates-io from outside the workspace.
See
the 0.28.0 plan
for the implementation checklist.