1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
pub use kvarn_async::prelude::*;
#[allow(unreachable_pub)] pub use kvarn_utils::prelude::*;
pub use crate::application;
pub use crate::comprash;
pub use crate::cors;
pub use crate::csp;
pub use crate::encryption;
pub use crate::extensions;
pub use crate::host;
pub use crate::limiting;
pub use crate::vary;
pub use kvarn_async as async_bits;
pub use kvarn_utils as utils;
pub use crate::*;
pub use comprash::UriKey;
pub use cors::{AllowList as CorsAllowList, Cors};
pub use csp::{Csp, Rule as CspRule, Value as CspValue, ValueSet as CspValueSet};
pub use error::{default as default_error, default_response as default_error_response};
pub use extensions::{Package, Post, Prepare, Present, Prime, ResponsePipeFuture};
pub use host::{Collection as HostCollection, Host};
pub use read;
pub(crate) use shutdown::{AcceptAction, AcceptManager};
pub use utils::{build_bytes, chars::*, parse, parse::SanitizeError, AsCleanDebug};
pub mod fs {
pub use super::async_bits::*;
#[cfg(not(feature = "uring"))]
pub use tokio::fs::{File, OpenOptions};
#[cfg(feature = "uring")]
pub use tokio_uring::fs::{File, OpenOptions};
}
pub mod networking {
pub use super::async_bits::*;
#[cfg(not(feature = "async-networking"))]
pub use std::net::{TcpListener, TcpStream, UdpSocket};
#[cfg(all(feature = "async-networking", not(feature = "uring")))]
pub use tokio::net::{TcpListener, TcpSocket, TcpStream, UdpSocket};
#[cfg(all(feature = "async-networking", feature = "uring"))]
pub use {
crate::application::TcpStreamAsyncWrapper as TcpStream, tokio::net::UdpSocket,
tokio_uring::net::TcpListener,
};
}
pub mod internals {
use super::{
application, async_bits, comprash, encryption, error, extensions, limiting, utils, vary,
};
pub use application::{
Body, HttpConnection, PushedResponsePipe, ResponseBodyPipe, ResponsePipe,
};
pub use async_bits::*;
pub use comprash::{CacheOut, FileCache, MokaCache, PathQuery, ResponseCache};
pub use encryption::Encryption;
pub use error::default as default_error;
pub use extensions::{ready, RetFut, RetSyncFut};
pub use limiting::{Action as LimitAction, Manager as LimitManager};
pub use mime::{self, Mime};
pub use mime_guess;
pub use tokio::time::timeout;
pub use tree_magic_mini;
pub use utils::{
PresentArguments, PresentArgumentsIter, PresentExtensions, PresentExtensionsIter,
};
pub use vary::{VariedResponse, Vary};
}
pub mod threading {
pub use std::sync::atomic::{self, Ordering};
pub use std::task::{Context, Wake, Waker};
pub use tokio::task::{spawn, spawn_blocking, spawn_local};
}
pub mod chrono {
pub use time::{self, ext::NumericalDuration, ext::NumericalStdDuration, OffsetDateTime};
}