1#![forbid(unsafe_code)]
10#![warn(missing_docs, clippy::pedantic)]
11#![allow(clippy::module_name_repetitions)]
12
13mod auth;
14mod cache;
15mod classify;
16mod deferred;
17mod layer;
18mod metrics;
19#[cfg(feature = "opentelemetry")]
20mod opentelemetry_metrics;
21#[cfg(test)]
22mod properties;
23mod task;
24
25pub use auth::{
26 InMemoryTenantStore, MIN_API_KEY_BYTES, Tenant, TenantStore, WeakApiKey, hash_api_key,
27 validate_api_key_strength,
28};
29pub use classify::{ClassificationError, ProtocolHeaders, classify_protocol_headers};
30pub use deferred::DeferredCompletions;
31pub use layer::{EdgeConfig, EdgeConfigError, MeterBody, MeterLayer, MeterService};
32pub use mcp_usage_core::{TaskAttribution, TaskOriginKind};
33pub use metrics::{EdgeMetrics, MetricsSnapshot};
34#[cfg(feature = "opentelemetry")]
35pub use opentelemetry_metrics::{OpenTelemetryMetrics, install_opentelemetry};
36pub use task::{InMemoryTaskStore, TaskAttributionStore, TaskStoreError, TaskStoreFuture};
37
38pub const PROTOCOL_VERSION_HEADER: &str = "mcp-protocol-version";
40pub const METHOD_HEADER: &str = "mcp-method";
42pub const NAME_HEADER: &str = "mcp-name";
44pub const API_KEY_HEADER: &str = "x-api-key";