1pub mod bootstrap;
15pub mod config;
16pub mod controller;
17pub mod errors;
18pub mod foundation;
19pub mod handlers;
20pub mod logging;
21pub mod middleware;
22pub mod request;
23pub mod response;
24pub mod routing;
25pub mod server;
26pub mod testing;
27pub mod websocket;
28
29#[cfg(feature = "auth")]
31pub mod auth;
32
33pub use bootstrap::{AppBootstrap, AppBootstrapper, BootstrapError, BootstrapResult, create_bootstrapper};
35pub use config::HttpConfig;
36pub use errors::{HttpError, HttpResult, VersionedError, VersionedErrorBuilder, VersionedErrorExt};
37pub use server::Server;
38
39pub use foundation::{BoxFuture, GenericHandler, IntoElifResponse, RequestExtractor};
41
42pub use routing::{
44 header_versioned_router,
45 path_versioned_router,
46 versioned_router,
47 ElifRouter,
48 GroupBuilder,
49 HttpMethod,
50 ParamError,
51 ParamType,
52 PathParams,
53 RouteBuilder,
54 RouteGroup,
55 RouteInfo,
56 RouteParam as RoutingRouteParam,
57 RouteRegistry,
58 VersionedRouteBuilder,
59 VersionedRouter,
61};
62
63pub use request::{ElifMethod, ElifPath, ElifQuery, ElifRequest, ElifState};
65pub use response::{
66 ElifHeaderMap, ElifHeaderName, ElifHeaderValue, ElifResponse, ElifStatusCode, ResponseBody,
67};
68
69pub use response::{ApiResponse, ElifJson, JsonError, JsonResponse, ValidationErrors};
71
72pub use middleware::{
74 body_limit::{BodyLimitConfig, BodyLimitInfo, BodyLimitMiddleware},
75 enhanced_logging::{
76 EnhancedLoggingMiddleware, LoggingConfig as MiddlewareLoggingConfig, RequestContext,
77 },
78 error_handler::{
80 error_handler, error_handler_with_config, ErrorHandlerConfig, ErrorHandlerMiddleware,
81 },
82 logging::LoggingMiddleware as LegacyLoggingMiddleware,
83 timeout::{apply_timeout, TimeoutConfig, TimeoutInfo, TimeoutMiddleware},
84 timing::{format_duration, RequestStartTime, TimingMiddleware},
85 tracing::{RequestMetadata, TracingConfig, TracingMiddleware},
86 v2::{
88 LoggingMiddleware, Middleware, MiddlewarePipelineV2 as MiddlewarePipeline, Next,
89 SimpleAuthMiddleware,
90 },
91 versioning::{
93 default_versioning_middleware, versioning_layer, versioning_middleware, ApiVersion,
94 RequestVersionExt, VersionInfo, VersionStrategy, VersioningConfig, VersioningLayer,
95 VersioningMiddleware, VersioningService,
96 },
97};
98
99#[cfg(feature = "auth")]
101pub use auth::{AuthMiddleware, RequestAuthExt};
102
103pub use logging::{init_logging, log_shutdown_info, log_startup_info, structured, LoggingConfig};
105pub use logging::context::LoggingContext;
107
108pub use controller::{
110 BaseController, Controller, ControllerRoute, ElifController, RouteParam as ControllerRouteParam,
111};
112pub use controller::pagination::{PaginationMeta, QueryParams};
114
115#[cfg(feature = "derive")]
117pub use elif_http_derive::{
118 body, controller, delete, get, group, head, middleware, options, param, patch, post, put,
119 resource, routes,
120};
121
122pub use handlers::{elif_handler, ElifHandler};
124
125pub use testing::{
127 create_test_container, get_test_port, test_error_handler, test_handler, test_http_config,
128 test_json_handler, test_socket_addr, ErrorAssertions, HttpAssertions, TestContainerBuilder,
129 TestQuery, TestServerBuilder, TestUser,
130};
131
132pub use websocket::{
134 ConnectionEvent,
135 ConnectionId,
136 ConnectionRegistry,
137 ConnectionState,
138 MessageType,
139 SimpleWebSocketHandler,
140 WebSocketConfig,
141 WebSocketConnection,
143 WebSocketError,
144 WebSocketHandler,
145 WebSocketMessage,
147 WebSocketResult,
148 WebSocketServer,
150 WebSocketUpgrade,
151};
152
153pub use errors::HttpError as ElifError;
155pub use response::ElifJson as Json;
156
157