fandhe-backend is a Rust backend HTTP server framework.Server / BoundServer as the core,Middleware / UpgradeHandler / RequestGate / Interceptor The behavior of the web server is assembled from these 4 extension points. It has a sans-IO HTTP/1.1 parser, DoS limits, and graceful shutdown as standard features, and CORS, compression, static serving, WebSocket, GraphQL, OpenAPI, WebRTC, etc. are all provided as plugins separated out by feature flags (pay-for-what-you-use).
How to use it differently from other skills — Server / Router / Middleware / CORS / WebSocket Because this term is common across multiple frameworks, it is easy to reference the wrong one.hono(Web Standards JS)・fastify(Node.js native)・go-echo(Go) is a separate framework, and neither is the same as this skill.fandhe-frontend is a Rust frontend layer (SSR / SPA / SSG) in the same fandhe family, and when investigating a Rust backend HTTP server, refer to this skill (fandhe-backend).
Target version: v0.4.2 ("added in vX.Y.Z" on each page indicates the introduction version).
Official documentation: https://fandhe-ai.github.io/fandhe-backend/
Directory structure
skills/fandhe-backend/
SKILL.md
references/
getting-started/
README.md
overview.md
crates.md
features.md
installation.md
minimal-server.md
guides/
README.md
reading.md
tutorial.md
feature-samples.md
extension-points.md
streaming.md
graceful-shutdown.md
core/
README.md
server.md
bound-server.md
handler.md
middleware.md
request-gate.md
gate-context.md
upgrade-handler.md
rebind-handle.md
interceptor.md
streaming-response.md
diagnostics.md
extension-points.md
routes/
README.md
router.md
path-patterns.md
handler-types.md
http/
README.md
overview.md
request.md
response.md
cookie.md
query.md
form.md
percent.md
body.md
chunked.md
buffer.md
error.md
socket.md
connection.md
plugins/
README.md
cors.md
compression.md
static.md
tracing.md
websocket.md
graphql.md
openapi.md
webrtc.md
webrtc-proxy.md
hub-wiring.md
samples/
README.md
minimal-server.md
crud-routing.md
custom-middleware.md
request-gate-auth.md
interceptor.md
cors.md
websocket-handler.md
graphql-schema.md
streaming-response.md
graceful-shutdown.md
static-file-serving.md
compression.md
full-featured-app.md
scripts/
README.md
install.md
dev.md
Exploration procedure
Derive the category from the task, and identify the target page in the category's README.md:
- Find the category corresponding to the task in the mapping table below. Note that files with the same name exist in multiple categories (
extension-points.mdis guides = contracts for extension points and procedures for creating your own, core = API definitions per type and overall flow.overview.mdis getting-started = overall picture of the framework, http = module structure within the crate.minimal-server.md/streaming-response.md/graceful-shutdown.md/cors.md/compression.md/interceptor.mdexists in both references and samples, with references = API definitions, samples = working wiring examples) - That category's
references/{category}/README.mdrefer to this to identify the target page - Read the
.mdof the relevant page to check the details
Task → Category mapping
| Task | Category | Reference README |
|---|---|---|
| Want to know the overall picture of the framework, the two core principles, the crate structure, the list of feature flags, installation steps, and minimal configuration code examples | getting-started | references/getting-started/README.md |
| Want to know the step-by-step tutorial from a minimal server to implementing Middleware, the list of samples by feature, the contracts for the 4 extension points and procedures for creating your own, streaming transmission, graceful shutdown procedures, and how to read the guides and their intended audience | guides | references/guides/README.md |
Server / BoundServer / Handler / Middleware / RequestGate / UpgradeHandler / Interceptor / StreamingResponse type definitions and API,GateContext(RequestGate::check connection context passed to it, peer_addr),BoundServer::rebind_handle / RebindHandle(hot-swapping a running listener without downtime), and the overall flow of the 4 extension points and plugin seams |
core | references/core/README.md |
returning redirects and replacing responses (Interceptor の intercept / map_response) |
core | references/core/README.md |
Want to replace the destination for runtime diagnostics (Diagnostics trait / DiagnosticEvent / StderrDiagnostics / Server::diagnostics) |
core | references/core/README.md |
Want access logs with status codes (Middleware::on_response_with_status) |
core | references/core/README.md |
Router routing rules,{name} / {*name} path pattern,HandlerFuture public type aliases such as,Router::merge Want to know about composition of multiple Routers and collision detection by |
routes | references/routes/README.md |
I want to push from the server via WebSocket (WsSender), connection open/close hooks (on_open / on_close / CloseReason), handshake check, path patterns, ping keepalive |
plugins | references/plugins/README.md |
| Want to know about sans-IO request/response parsers, Cookie, query, form, percent-decode, body framing, chunked coding, read buffers, error responses, socket options, keep-alive | http | references/http/README.md |
| Want to know about per-feature plugin APIs such as CORS, compression, static serving, tracing, WebSocket, GraphQL, OpenAPI, WebRTC (in-process / proxy), hub common wiring, etc. | plugins | references/plugins/README.md |
| Want to know about minimal server, CRUD routing, custom Middleware / RequestGate / Interceptor, working wiring examples for CORS, WebSocket, GraphQL, streaming, graceful shutdown, static serving, compression, and production-form templates | samples | samples/README.md |
| Want to know about crate installation and feature enabling commands, and build, run, test, lint, and dependency audit commands | scripts | scripts/README.md |