Skip to main content

ferrum_server/
lib.rs

1//! # Ferrum Server
2//!
3//! HTTP API server abstractions for LLM inference services.
4//!
5//! ## Overview
6//!
7//! This module defines the core traits for implementing HTTP API servers
8//! that can serve LLM inference requests with OpenAI API compatibility.
9//!
10//! ## Design Principles
11//!
12//! - **Framework Agnostic**: Abstract interfaces that work with any HTTP framework
13//! - **OpenAI Compatible**: Support for OpenAI Chat Completions API
14//! - **Middleware Support**: Pluggable middleware for auth, logging, rate limiting
15//! - **Streaming Support**: Server-Sent Events for streaming responses
16//! - **Monitoring**: Built-in metrics and health checks
17
18pub mod axum_server;
19pub mod chat_template;
20pub mod middleware;
21pub mod openai;
22pub mod traits;
23pub mod types;
24
25// Re-exports
26pub use traits::{
27    AuthProvider, HttpServer, MiddlewareStack, RateLimiter as ServerRateLimiter, RequestHandler,
28    ResponseBuilder, StreamingHandler,
29};
30
31pub use types::{
32    ApiVersion, Headers, HealthStatus, HttpMethod, HttpRequest, HttpResponse, RequestContext,
33    ServerConfig, ServerMetrics, StatusCode,
34};
35
36pub use openai::{
37    ChatCompletionsRequest, ChatCompletionsResponse, ChatFunction, ChatFunctionCall, ChatMessage,
38    ChatTool, ChatToolCall, CompletionPrompt, CompletionsRequest, CompletionsResponse,
39    FunctionCallChoice, ModelListResponse, OpenAiError, OpenAiErrorType, OpenAiResponseFormat,
40    StreamOptions, ToolChoice,
41};
42
43pub use middleware::{
44    AuthConfig, CompressionConfig, CorsConfig, LoggingConfig, MiddlewareConfig,
45    RateLimitConfig as MiddlewareRateLimitConfig,
46};
47
48pub use axum_server::{init_prometheus_recorder, AxumServer, LoraAdapterModel};