1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//! # HwhKit
//!
//! A batteries-included toolkit for building production Rust web
//! services. Built on top of [`axum`], [`tokio`], and `tower-http`.
//!
//! ## Features
//!
//! - One-call server bootstrap ([`run_and_serve`])
//! - Pluggable middleware bundle (CORS, compression, panic-catcher, …)
//! - First-class production defaults: `/health`, `/health/ready`,
//! `/metrics`, `/version`, `/info`, request-id, graceful shutdown
//! - Optional capabilities: rate-limit, idempotency, circuit-breaker,
//! JWT verifier, scheduler
//! - Per-tenant scoping primitives ([`hwhkit_core::TenantId`])
//!
//! ## Quick start
//!
//! ```no_run
//! use hwhkit::prelude::*;
//! use axum::{routing::get, Router};
//! use async_trait::async_trait;
//!
//! struct MyApp;
//!
//! #[async_trait]
//! impl Application for MyApp {
//! async fn build_router(
//! &self,
//! _ctx: AppContext,
//! _cfg: &hwhkit_config::AppConfig,
//! ) -> Result<Router> {
//! Ok(Router::new().route("/", get(|| async { "ok" })))
//! }
//! }
//!
//! #[tokio::main]
//! async fn main() -> std::result::Result<(), Box<dyn std::error::Error + Send + Sync>> {
//! run_and_serve(MyApp, BootstrapConfig::default()).await
//! }
//! ```
//!
//! ## Re-exports
//!
//! Per-crate exports under `hwhkit::*` are kept narrow and explicit. To
//! pull in `axum::Router` or `serde::Serialize`, depend on those crates
//! directly — `hwhkit` does not re-export them.
// Convenience re-exports of the most-used `hwhkit_core` items so
// downstream code can `use hwhkit::*` for the headline types without
// reaching into the workspace crates. The full surface still lives at
// `hwhkit::core` for advanced use.
pub use ;
pub use ;
pub use ;
pub use ;
// Workspace-crate aliases. These are the `0.6` canonical names. The
// historical `*_v2` aliases were dropped in 0.6 — depend on the
// workspace crates by their package names instead.
pub use hwhkit_config as config;
pub use hwhkit_core as core;
pub use hwhkit_observability as observability;
pub use hwhkit_integration_mongodb as mongodb;
pub use hwhkit_integration_nats as nats;
pub use hwhkit_integration_neo4j as neo4j;
pub use hwhkit_integration_oss as oss;
pub use hwhkit_integration_postgres as postgres;
pub use hwhkit_integration_qdrant as qdrant;
pub use hwhkit_integration_redis as redis;
pub use hwhkit_integration_s3 as s3;
pub use hwhkit_scheduler as scheduler;
/// JWT verifier facade. Re-exports the modern verifier from
/// [`hwhkit_core::jwt`].