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
//! # Sunbeam Service Framework
//!
//! A ConnectRPC-based framework for building microservices within the Sunbeam ecosystem.
//!
//! ## Overview
//!
//! This framework provides opinionated abstractions, common patterns, and boilerplate
//! reduction for building production-ready microservices using **connect-rust**.
//!
//! ## Key Features
//!
//! - **Service Trait**: Base trait for all Sunbeam services with lifecycle hooks
//! - **Configuration**: Figment-based configuration with environment variable support
//! - **Error Handling**: Unified error types with automatic ConnectError conversion
//! - **Router**: Enhanced router with Sunbeam conventions
//! - **Server**: Axum and standalone server abstractions
//! - **Middleware**: Auth, logging, metrics, tracing, rate limiting, etc.
//! - **Database**: SQLx integration with automatic migrations
//! - **Message Queue**: NATS/JetStream integration
//! - **Leader Election**: Vault/OpenBAO and NATS-based leader election
//! - **Client Utilities**: Factory, retry, circuit breaker patterns
//! - **Testing**: Test harness, mocks, fixtures, testcontainers integration
//! - **Automatic Instrumentation**: Proc-macro derive for metrics and tracing
//!
//! ## Quick Start
//!
//! See the `examples/` directory for complete working examples.
//!
//! ```rust,ignore
//! // Example usage (conceptual - see examples for real code)
//! use sunbeam_g2v::prelude::*;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
//! let config = ServiceConfig::load()?;
//!
//! let router = ServiceRouter::new();
//!
//! ServerBuilder::new()
//! .with_router(router)
//! .with_metrics()
//! .with_tracing()
//! .with_health_check("/health")
//! .serve()
//! .await
//! }
//! ```
pub use HealthRouter;
// Re-export connectrpc essentials for convenience
pub use ;
// Re-export buffa essentials
pub use ;
/// Boxed error type for middleware
pub type BoxError = ;
/// Boxed future type
pub type BoxFuture<T> = Pin;
/// Result type using BoxError
pub type BoxResult<T> = ;