Expand description
§elif-http
HTTP server core for the elif.rs LLM-friendly web framework.
This crate provides a NestJS-like HTTP server experience with:
- Clean, intuitive API that abstracts Axum complexity
- Integration with the elif-core DI container
- Built-in middleware pipeline
- Graceful shutdown handling
- Health check endpoints
- Framework-native routing system
Re-exports§
pub use bootstrap::AppBootstrap;
pub use bootstrap::AppBootstrapper;
pub use bootstrap::BootstrapError;
pub use bootstrap::BootstrapResult;
pub use bootstrap::create_bootstrapper;
pub use config::HttpConfig;
pub use errors::HttpError;
pub use errors::HttpResult;
pub use errors::VersionedError;
pub use errors::VersionedErrorBuilder;
pub use errors::VersionedErrorExt;
pub use server::Server;
pub use foundation::BoxFuture;
pub use foundation::GenericHandler;
pub use foundation::IntoElifResponse;
pub use foundation::RequestExtractor;
pub use routing::header_versioned_router;
pub use routing::path_versioned_router;
pub use routing::versioned_router;
pub use routing::ElifRouter;
pub use routing::GroupBuilder;
pub use routing::HttpMethod;
pub use routing::ParamError;
pub use routing::ParamType;
pub use routing::PathParams;
pub use routing::RouteBuilder;
pub use routing::RouteGroup;
pub use routing::RouteInfo;
pub use routing::RouteParam as RoutingRouteParam;
pub use routing::RouteRegistry;
pub use routing::VersionedRouteBuilder;
pub use routing::VersionedRouter;
pub use request::ElifMethod;
pub use request::ElifPath;
pub use request::ElifQuery;
pub use request::ElifRequest;
pub use request::ElifState;
pub use response::ElifHeaderMap;
pub use response::ElifHeaderName;
pub use response::ElifHeaderValue;
pub use response::ElifResponse;
pub use response::ElifStatusCode;
pub use response::ResponseBody;
pub use response::ApiResponse;
pub use response::ElifJson;
pub use response::JsonError;
pub use response::JsonResponse;
pub use response::ValidationErrors;
pub use middleware::body_limit::BodyLimitConfig;
pub use middleware::body_limit::BodyLimitInfo;
pub use middleware::body_limit::BodyLimitMiddleware;
pub use middleware::enhanced_logging::EnhancedLoggingMiddleware;
pub use middleware::enhanced_logging::LoggingConfig as MiddlewareLoggingConfig;
pub use middleware::enhanced_logging::RequestContext;
pub use middleware::error_handler::error_handler;
pub use middleware::error_handler::error_handler_with_config;
pub use middleware::error_handler::ErrorHandlerConfig;
pub use middleware::error_handler::ErrorHandlerMiddleware;
pub use middleware::logging::LoggingMiddleware as LegacyLoggingMiddleware;
pub use middleware::timeout::apply_timeout;
pub use middleware::timeout::TimeoutConfig;
pub use middleware::timeout::TimeoutInfo;
pub use middleware::timeout::TimeoutMiddleware;
pub use middleware::timing::format_duration;
pub use middleware::timing::RequestStartTime;
pub use middleware::timing::TimingMiddleware;
pub use middleware::tracing::RequestMetadata;
pub use middleware::tracing::TracingConfig;
pub use middleware::tracing::TracingMiddleware;
pub use middleware::v2::LoggingMiddleware;
pub use middleware::v2::Middleware;
pub use middleware::v2::MiddlewarePipelineV2 as MiddlewarePipeline;
pub use middleware::v2::Next;
pub use middleware::v2::SimpleAuthMiddleware;
pub use middleware::versioning::default_versioning_middleware;
pub use middleware::versioning::versioning_layer;
pub use middleware::versioning::versioning_middleware;
pub use middleware::versioning::ApiVersion;
pub use middleware::versioning::RequestVersionExt;
pub use middleware::versioning::VersionInfo;
pub use middleware::versioning::VersionStrategy;
pub use middleware::versioning::VersioningConfig;
pub use middleware::versioning::VersioningLayer;
pub use middleware::versioning::VersioningMiddleware;
pub use middleware::versioning::VersioningService;
pub use logging::init_logging;
pub use logging::log_shutdown_info;
pub use logging::log_startup_info;
pub use logging::structured;
pub use logging::LoggingConfig;
pub use logging::context::LoggingContext;
pub use controller::BaseController;
pub use controller::Controller;
pub use controller::ControllerRoute;
pub use controller::ElifController;
pub use controller::RouteParam as ControllerRouteParam;
pub use controller::pagination::PaginationMeta;
pub use controller::pagination::QueryParams;
pub use handlers::elif_handler;
pub use handlers::ElifHandler;
pub use testing::create_test_container;
pub use testing::get_test_port;
pub use testing::test_error_handler;
pub use testing::test_handler;
pub use testing::test_http_config;
pub use testing::test_json_handler;
pub use testing::test_socket_addr;
pub use testing::ErrorAssertions;
pub use testing::HttpAssertions;
pub use testing::TestContainerBuilder;
pub use testing::TestQuery;
pub use testing::TestServerBuilder;
pub use testing::TestUser;
pub use websocket::ConnectionEvent;
pub use websocket::ConnectionId;
pub use websocket::ConnectionRegistry;
pub use websocket::ConnectionState;
pub use websocket::MessageType;
pub use websocket::SimpleWebSocketHandler;
pub use websocket::WebSocketConfig;
pub use websocket::WebSocketConnection;
pub use websocket::WebSocketError;
pub use websocket::WebSocketHandler;
pub use websocket::WebSocketMessage;
pub use websocket::WebSocketResult;
pub use websocket::WebSocketServer;
pub use websocket::WebSocketUpgrade;
pub use errors::HttpError as ElifError;
pub use response::ElifJson as Json;
Modules§
- bootstrap
- Bootstrap engine for automatic module discovery and server setup
- config
- controller
- errors
- foundation
- handlers
- logging
- middleware
- Middleware
- request
- response
- routing
- HTTP routing system for elif.rs
- server
- testing
- websocket
- WebSocket server foundation for elif framework
Macros§
- controller_
dispatch - Macro to help implement controller method dispatch
Updated to work with Arc
for thread-safe controller access - debug_
structured - Convenience macro for structured debug logging
- elif_
route - Macro to create elif handlers more easily
- error_
structured - Convenience macro for structured error logging
- extract_
optional_ params - extract_
params - Convenience macros for parameter extraction
- info_
structured - Convenience macro for structured info logging
- log_
with_ context - Convenience macro for structured logging with context
- websocket_
handler - Macro for creating WebSocket handlers with clean syntax Simplified for foundation