#![deny(missing_docs)]
#[cfg(all(feature = "fips", feature = "non-fips"))]
compile_error!(
"features `fips` and `non-fips` are mutually exclusive; a FIPS artifact must \
not link a non-validated crypto module; build with `--no-default-features \
--features fips`"
);
#[cfg(not(any(feature = "fips", feature = "non-fips")))]
compile_error!("enable exactly one crypto provider feature: `fips` or `non-fips`");
mod admission;
mod classify;
mod grpc;
mod handler;
mod http_io;
mod request;
mod server;
mod tls;
pub use admission::IngressLimits;
pub use classify::{classify, Classified};
pub use grpc::{serve_grpc, serve_grpc_tls};
pub use handler::IngressHandler;
pub use hyper::body::Incoming;
pub use request::{
buffered_response, IngressRequest, IngressResponse, ResponseBody, StreamingResponse,
};
pub use server::{
serve, serve_tls, serve_tls_with_limits, serve_tls_with_shutdown, serve_with_limits,
serve_with_shutdown, DRAIN_DEADLINE,
};
pub use tls::{CryptoProvider, TlsError, FIPS_APPROVED_SUITES};
#[cfg(feature = "fips")]
pub use tls::AwsLcFipsProvider;
#[cfg(feature = "non-fips")]
pub use tls::RingProvider;
#[cfg(feature = "non-fips")]
pub type DefaultCryptoProvider = tls::RingProvider;
#[cfg(feature = "fips")]
pub type DefaultCryptoProvider = tls::AwsLcFipsProvider;