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