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 server::Server;
pub use config::HttpConfig;
pub use error::HttpError;
pub use error::HttpResult;
pub use routing::HttpMethod;
pub use routing::RouteInfo;
pub use routing::RouteRegistry;
pub use routing::ElifRouter;
pub use routing::Route;
pub use routing::RouteBuilder;
pub use routing::PathParams;
pub use routing::RouteParam;
pub use routing::ParamError;
pub use routing::ParamType;
pub use routing::RouteGroup;
pub use routing::GroupBuilder;
pub use request::ElifRequest;
pub use request::RequestExtractor;
pub use request::ElifQuery;
pub use request::ElifPath;
pub use request::ElifState;
pub use response::ElifResponse;
pub use response::ResponseBody;
pub use response::IntoElifResponse;
pub use json::ElifJson;
pub use json::JsonError;
pub use json::JsonResponse;
pub use json::ValidationErrors;
pub use json::ApiResponse;
pub use middleware::Middleware;
pub use middleware::MiddlewarePipeline;
pub use middleware::ErrorHandlingMiddleware;
pub use middleware::logging::LoggingMiddleware;
pub use middleware::enhanced_logging::EnhancedLoggingMiddleware;
pub use middleware::enhanced_logging::LoggingConfig as MiddlewareLoggingConfig;
pub use middleware::enhanced_logging::RequestContext;
pub use middleware::timing::TimingMiddleware;
pub use middleware::timing::RequestStartTime;
pub use middleware::timing::format_duration;
pub use middleware::tracing::TracingMiddleware;
pub use middleware::tracing::TracingConfig;
pub use middleware::tracing::RequestMetadata;
pub use middleware::timeout::TimeoutMiddleware;
pub use middleware::timeout::TimeoutConfig;
pub use middleware::timeout::TimeoutInfo;
pub use middleware::timeout::apply_timeout;
pub use middleware::body_limit::BodyLimitMiddleware;
pub use middleware::body_limit::BodyLimitConfig;
pub use middleware::body_limit::BodyLimitInfo;
pub use middleware::body_limit::limit_body_size;
pub use middleware::body_limit::limits;
pub use logging::LoggingConfig;
pub use logging::init_logging;
pub use logging::log_startup_info;
pub use logging::log_shutdown_info;
pub use logging::LoggingContext;
pub use logging::structured;
pub use controller::Controller;
pub use controller::BaseController;
pub use controller::QueryParams;
pub use controller::PaginationMeta;
pub use handler::ElifHandler;
pub use handler::elif_handler;

Modules§

config
HTTP server configuration
controller
Service-Oriented Controller System
error
HTTP server error types
handler
Handler abstraction for elif.rs framework
integration_tests
End-to-end integration tests using pure framework abstractions
json
JSON handling utilities for requests and responses
logging
Structured Logging Integration
middleware
Middleware
request
Request abstraction for handling HTTP requests
response
Response abstraction for building HTTP responses
routing
HTTP routing system for elif.rs
server
Elif HTTP Server
tests
Tests for HTTP server functionality

Macros§

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
info_structured
Convenience macro for structured info logging
log_with_context
Convenience macro for structured logging with context

Structs§

ElifHeaderMap
Framework-native header map - use instead of axum::http::HeaderMap
A set of HTTP headers
ElifStatusCode
Framework-native status codes - use instead of axum::http::StatusCode An HTTP status code (status-code in RFC 9110 et al.).