Skip to main content

Crate rust_web_server

Crate rust_web_server 

Source
Expand description

§rust-web-server

A static file web server and HTTP toolkit written in Rust. Supports HTTP/3 (QUIC), HTTP/2, and HTTP/1.1.

§Use as a library

Add to Cargo.toml:

[dependencies]
rust-web-server = "17"

§Quick start: add a custom route

use rust_web_server::controller::Controller;
use rust_web_server::request::{METHOD, Request};
use rust_web_server::response::{Response, STATUS_CODE_REASON_PHRASE};
use rust_web_server::range::Range;
use rust_web_server::mime_type::MimeType;
use rust_web_server::server::ConnectionInfo;

pub struct PingController;

impl Controller for PingController {
    fn is_matching(request: &Request, _: &ConnectionInfo) -> bool {
        request.method == METHOD.get && request.request_uri == "/ping"
    }

    fn process(_: &Request, mut response: Response, _: &ConnectionInfo) -> Response {
        response.status_code = *STATUS_CODE_REASON_PHRASE.n200_ok.status_code;
        response.reason_phrase = STATUS_CODE_REASON_PHRASE.n200_ok.reason_phrase.to_string();
        response.content_range_list = vec![
            Range::get_content_range(b"pong".to_vec(), MimeType::TEXT_PLAIN.to_string())
        ];
        response
    }
}

See DEVELOPER.md for the full building blocks reference and use case examples.

Modules§

app
application
async_state
Async-capable state-aware application — requires the http2 feature (tokio).
blocklist
Runtime IP blocklist middleware.
body
cache
In-memory response cache middleware.
client_hint
compression
config_reload
Hot configuration reload.
controller
cookie
core
cors
entry_point
error
ext
extract
feature
Runtime feature toggles.
header
http
ip_filter
IP address allowlist and denylist middleware.
json
language
log
macros
Declarative routing macro.
maintenance
Maintenance mode middleware.
mcp
Model Context Protocol (MCP) server — HTTP Streamable HTTP transport.
metrics
Server-wide and per-route Prometheus metrics.
middleware
Composable middleware pipeline.
mime_type
null
otel
OpenTelemetry-compatible distributed tracing.
proxy
Reverse proxy middleware with round-robin load balancing.
range
rate_limit
request
request_log
In-memory ring buffer of recent HTTP requests.
response
rewrite
Request and response rewriting middleware.
router
server
session
Server-side session management.
sse
Server-Sent Events (SSE) response builder.
state
Shared application state and state-aware routing.
symbol
tcp_proxy
Layer-4 TCP proxy.
test_client
thread_pool
udp_proxy
Layer-4 UDP proxy.
url
validate
virtual_host
websocket
WebSocket protocol support — RFC 6455.
ws_proxy
WebSocket reverse proxy.

Macros§

routes
Build a routing app from a declarative table.