Expand description
The proxy and operations layer of rust-web-server: reverse proxy, config-driven routes, load balancing, L4 and WebSocket proxies, the admin API, cluster sync, fleet pull, WAF, LLM and A2A gateways, FastCGI, traffic insights.
Internal to rust-web-server, released with it at the same version: use
these through the rust_web_server paths, which stay stable; this
crate’s own layout may change in any release. See
spec/WORKSPACE_SPLIT.md.
Modules§
- a2a
- A2A (Agent2Agent) 1.0 server, JSON-RPC binding (18.17.0, #65): other
agents discover this one by its Agent Card at
/.well-known/agent-card.jsonand talk to it withSendMessage,GetTask,ListTasks,CancelTask. - admin
Non-WebAssembly - The admin API (18.10.0, #29): change and inspect a running server on a listener of its own, never on the public routes.
- canary
Non-WebAssembly - Weighted canary / A-B traffic splitting middleware.
- cluster
Non-WebAssembly - Runtime state shared across replicas through Redis (18.22.0). Runtime state shared across replicas (18.22.0, #76).
- config_
check rws --check: validaterws.config.tomlwithout starting the server — the counterpart ofnginx -t/caddy validate.- dev_mcp
Non-WebAssembly app.dev_mcp(): an MCP endpoint for a coding agent (18.28.0).app.dev_mcp(): an MCP endpoint that lets a coding agent look inside the application it is working on — its routes and the middleware around them, its effective configuration (secrets hidden), its layout andrws.app.toml(crate::app_manifest), the last requests and errors, and with amodel-*feature its models, database schema and migrations. Since 18.28.0 (roadmap #85, #87). Since 18.29.0 (#88) it also writes code:gen_model,gen_route,gen_migration,gen_test(GEN_TOOLS,crate::generator), unless read-only.- fastcgi
Non-WebAssembly - FastCGI client: PHP through php-fpm (18.21.0). FastCGI (18.21.0, #72): PHP through php-fpm, and any other FastCGI responder, without FrankenPHP or a second web server.
- fleet
http2and non-WebAssembly - Fleet config pull: signed configs from HTTPS, S3 or git (18.23.0). Fleet config pull (18.23.0, #80): many instances, one source of truth.
- generator
Non-WebAssembly rws gen model|route|migration|test: code generators for the conventional layout (18.29.0).rws gen model|route|migration|test(18.29.0, roadmap #88): code generators for a project in the conventional layout (crate::app_manifest), as a library — therws gencommand and the dev MCP endpoint’sgen_*tools (crate::dev_mcp) are front ends.- ingress
Non-WebAssembly - Kubernetes Ingress watcher and router.
- llm
Non-WebAssembly - An LLM proxy (18.9.0, #41): one endpoint in front of OpenAI-compatible and Anthropic providers that counts tokens, enforces budgets and fails over between providers.
- proxy
Non-WebAssembly - Reverse proxy middleware with round-robin load balancing.
- proxy_
config Non-WebAssembly - Config-driven proxy application.
- tcp_
proxy Non-WebAssembly - Layer-4 TCP proxy.
- traffic
- Traffic insights (18.15.0): who visits — people, AI agents, bots — worked out by rws from each request, for the admin UI’s Traffic page.
- udp_
proxy Non-WebAssembly - Layer-4 UDP proxy.
- waf
- Web application firewall: rws’s own rules (18.22.0). Web application firewall (18.22.0, #77): rws’s own rules, no rule language to learn and no external engine.
- ws_
proxy Non-WebAssembly - WebSocket reverse proxy.