elif_http/
lib.rs

1//! # elif-http
2//! 
3//! HTTP server core for the elif.rs LLM-friendly web framework.
4//! 
5//! This crate provides the fundamental HTTP server functionality including:
6//! - Axum-based HTTP server with async support
7//! - Integration with the elif-core DI container
8//! - Configuration management
9//! - Graceful shutdown handling
10//! - Health check endpoints
11
12// pub mod server;
13// pub mod simple_server;
14pub mod minimal_server;
15pub mod server_with_middleware;
16// pub mod stateful_server;
17pub mod simple_stateful_server;
18pub mod config;
19pub mod error;
20pub mod tests;
21pub mod routing;
22pub mod request;
23pub mod response;
24pub mod json;
25pub mod middleware;
26pub mod controller;
27pub mod database;
28
29// pub use server::{HttpServer, HttpServerBuilder};
30// pub use simple_server::SimpleHttpServer;
31pub use minimal_server::MinimalHttpServer;
32pub use server_with_middleware::MiddlewareHttpServer;
33// pub use stateful_server::{StatefulHttpServer, StatefulHttpServerBuilder, AppState};
34pub use simple_stateful_server::SimpleStatefulHttpServer;
35pub use config::HttpConfig;
36pub use error::{HttpError, HttpResult};
37
38// Re-export routing types
39pub use routing::{
40    HttpMethod, RouteInfo, RouteRegistry,
41    ElifRouter, Route, RouteBuilder,
42    PathParams, RouteParam, ParamError, ParamType,
43    RouteGroup, GroupBuilder,
44};
45
46// Re-export request/response types
47pub use request::{ElifRequest, RequestExtractor};
48pub use response::{ElifResponse, ResponseBody, IntoElifResponse};
49pub use json::{ElifJson, JsonError, JsonResponse, ValidationErrors, ApiResponse};
50
51// Re-export middleware types
52pub use middleware::{
53    Middleware, MiddlewarePipeline, ErrorHandlingMiddleware,
54    logging::LoggingMiddleware,
55    timing::{TimingMiddleware, RequestStartTime, format_duration},
56};
57
58// Re-export controller types
59pub use controller::{Controller, BaseController, QueryParams, PaginationMeta};
60
61// Re-export database types
62pub use database::{DatabaseServiceProvider, create_database_pool, get_database_pool, get_named_database_pool};
63
64// Re-export commonly used types
65pub use axum::{
66    Router, 
67    response::{Json, Response},
68    extract::{State, Query, Path},
69    http::{StatusCode, HeaderMap},
70};