Crate elif_http

Crate elif_http 

Source
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