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 model_registry;
22pub mod openai;
23pub mod traits;
24pub mod types;
25
26// Re-exports
27pub use traits::{
28    AuthProvider, HttpServer, MiddlewareStack, RateLimiter as ServerRateLimiter, RequestHandler,
29    ResponseBuilder, StreamingHandler,
30};
31
32pub use types::{
33    ApiVersion, Headers, HealthStatus, HttpMethod, HttpRequest, HttpResponse, RequestContext,
34    ServerConfig, ServerMetrics, StatusCode,
35};
36
37pub use openai::{
38    ChatCompletionsRequest, ChatCompletionsResponse, ChatFunction, ChatFunctionCall, ChatMessage,
39    ChatTool, ChatToolCall, CompletionPrompt, CompletionsRequest, CompletionsResponse,
40    FunctionCallChoice, ModelListResponse, OpenAiError, OpenAiErrorType, OpenAiResponseFormat,
41    StreamOptions, ToolChoice,
42};
43
44pub use middleware::{
45    AuthConfig, CompressionConfig, CorsConfig, LoggingConfig, MiddlewareConfig,
46    RateLimitConfig as MiddlewareRateLimitConfig,
47};
48
49pub use axum_server::{default_chat_sampling_params, init_prometheus_recorder, AxumServer};
50pub use model_registry::{
51    LoraAdapterModel, ServedModelEntry, ServedModelKind, ServedModelName, ServedModelRegistry,
52    ServedModelRegistryError,
53};