rusty-gasket 0.1.8

A plugin-based Rust framework for backend HTTP services
//! Observability: request IDs, structured logging, and tracing.
//!
//! The logging middleware creates a root tracing span per request with
//! empty auth fields. The auth middleware fills them in via the shared
//! [`LoggingContext`] (bidirectional middleware communication pattern).

mod logging;
pub mod request_id;
mod security;
#[cfg(feature = "sharded-sink")]
mod sharded;

#[cfg(feature = "otlp")]
pub use logging::init_tracing_with_otel;
pub use logging::{
    AuthSummary, AuthSummaryBuilder, LoggingContext, init_tracing, init_tracing_from_env,
    logging_middleware,
};
pub use request_id::{CURRENT_REQUEST_ID, RequestId, X_REQUEST_ID, current_request_id};
pub use security::SecurityJsonFormat;

#[cfg(all(feature = "sharded-sink", feature = "auth"))]
pub use sharded::ShardedAuditLogger;
#[cfg(all(feature = "sharded-sink", feature = "otlp"))]
pub use sharded::init_tracing_with_otel_sharded;
#[cfg(feature = "sharded-sink")]
pub use sharded::{ShardedLogGuard, ShardedSinkConfig, init_tracing_sharded};