1#![doc(
13 html_favicon_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png"
14)]
15#![doc(html_logo_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png")]
16#![cfg_attr(docsrs, feature(doc_auto_cfg, doc_cfg))]
17#![cfg_attr(test, allow(clippy::float_cmp))]
18#![cfg_attr(not(test), warn(clippy::print_stdout, clippy::dbg_macro))]
19
20pub(crate) mod body;
21pub use body::{Body, BodyDataStream};
22
23mod body_limit;
24pub use body_limit::BodyLimit;
25
26mod body_ext;
27pub use body_ext::BodyExtractExt;
28
29pub type Request<T = Body> = http::Request<T>;
32
33pub type Response<T = Body> = http::Response<T>;
36
37pub mod proto;
38
39pub mod conn;
40
41pub mod dep {
42 pub mod http {
47 #[doc(inline)]
54 pub use http::*;
55 }
56
57 pub mod http_body {
58 #[doc(inline)]
65 pub use http_body::*;
66 }
67
68 pub mod http_body_util {
69 #[doc(inline)]
77 pub use http_body_util::*;
78 }
79
80 pub mod mime {
81 #[doc(inline)]
88 pub use mime::*;
89 }
90
91 pub mod mime_guess {
92 #[doc(inline)]
99 pub use mime_guess::*;
100 }
101}
102
103pub mod header {
104 #[doc(inline)]
107 pub use crate::dep::http::header::*;
108
109 macro_rules! static_header {
110 ($($name_bytes:literal),+ $(,)?) => {
111 $(
112 rama_macros::paste! {
113 #[doc = concat!("header name constant for `", $name_bytes, "`.")]
114 pub static [<$name_bytes:snake:upper>]: super::HeaderName = super::HeaderName::from_static($name_bytes);
115 }
116 )+
117 };
118 }
119
120 static_header!["x-forwarded-host", "x-forwarded-for", "x-forwarded-proto",];
122
123 static_header!["keep-alive", "proxy-connection"];
125
126 static_header![
128 "cf-connecting-ip",
129 "true-client-ip",
130 "client-ip",
131 "x-client-ip",
132 "x-real-ip",
133 ];
134
135 pub static RAMA_ID_HEADER_VALUE: HeaderValue = HeaderValue::from_static(
137 const_format::formatcp!("{}/{}", rama_utils::info::NAME, rama_utils::info::VERSION),
138 );
139}
140
141#[doc(inline)]
142pub use self::dep::http::header::{HeaderMap, HeaderName, HeaderValue};
143#[doc(inline)]
144pub use self::dep::http::method::Method;
145#[doc(inline)]
146pub use self::dep::http::status::StatusCode;
147#[doc(inline)]
148pub use self::dep::http::uri::{Scheme, Uri};
149#[doc(inline)]
150pub use self::dep::http::version::Version;