arcly-http-core 0.6.0

Foundation crate for arcly-http: zero-lock DI engine, HTTP boundary, unified request pipeline, auth, resilience, observability, and OpenAPI. Use the `arcly-http` facade instead of depending on this directly.
Documentation
//! **arcly-http-core** — the always-compiled foundation of arcly-http.
//!
//! Contains the tightly-coupled request core that the optional subsystem
//! crates (`arcly-http-data`, `-compliance`, `-realtime`, `-messaging`) and
//! the `arcly-http` facade build on: the zero-lock DI engine, the HTTP
//! boundary + `RequestContext`, the unified request `pipeline`, identity &
//! access (`auth`), `resilience`, `observability`, and the self-documenting
//! OpenAPI surface (`docs`).
//!
//! Application code should depend on the `arcly-http` facade and
//! `use arcly_http::prelude::*;` rather than this crate directly.

#![forbid(unsafe_code)]

pub mod auth;
pub mod core;
pub mod docs;
pub mod http;
pub mod observability;
pub mod pipeline;
pub mod resilience;
pub mod transport;
pub mod web;

// Internal path-compat shims: several core modules refer to `crate::session`
// and `crate::cookie`.
pub use auth::cookie;
pub use auth::session;

// Convenience re-exports used across the workspace.
pub use core::plugins;
pub use docs::openapi;
pub use web::{Error, RequestContext};

// Re-exports needed by macro expansions that target core symbols.
#[doc(hidden)]
pub use axum as __axum;

/// Build a JSON schema for `T` — backs the macro-emitted OpenAPI schema fns.
#[doc(hidden)]
#[inline]
pub fn __schema_for<T: schemars::JsonSchema>() -> serde_json::Value {
    serde_json::to_value(schemars::schema_for!(T)).unwrap_or(serde_json::Value::Null)
}