关于 fandhe-backend
fandhe-backend 是面向后端开发者的 Rust HTTP 服务器框架,提供 sans-IO HTTP/1.1 解析器、内置防护与扩展点,并将多种能力拆分为可选插件。
主要功能
- 01sans-IO HTTP/1.1 解析器
- 02四种服务器扩展点
- 03内置 DoS 限制
- 04优雅关闭
- 05按 feature 启用插件
适用场景
- 01构建 Rust HTTP 后端
- 02添加中间件和请求门控
- 03提供 WebSocket 或 GraphQL
- 04按需选择服务器插件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fandhe-ai/ agent-reference-skills --skill fandhe-backend安装后在 Claude Code 中输入/fandhe-backend确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/core/bound-server.mddiagnostics.mdextension-points.mdgate-context.mdhandler.mdinterceptor.mdmiddleware.mdREADME.mdrebind-handle.mdrequest-gate.mdserver.mdstreaming-response.mdupgrade-handler.mdreferences/getting-started/crates.mdfeatures.mdinstallation.mdminimal-server.mdoverview.mdREADME.mdreferences/guides/dpop.mdextension-points.mdfeature-samples.mdgraceful-shutdown.mdjwks-refresh.mdreading.mdREADME.mdstreaming.mdtutorial.mdws-gate-extensions.mdreferences/http/body.md详细介绍
来自项目 READMEfandhe-backend
fandhe-backend は Rust 製バックエンド HTTP サーバーフレームワーク。Server / BoundServer を核に、Middleware / UpgradeHandler / RequestGate / Interceptor という 4 つの拡張点で Web サーバーの挙動を組み立てる。sans-IO な HTTP/1.1 パーサー、DoS 上限、graceful shutdown を標準機能として持ち、CORS・圧縮・静的配信・WebSocket・GraphQL・OpenAPI・WebRTC 等はすべて feature フラグで切り出したプラグインとして提供される(pay-for-what-you-use)。ただし Gate 型の hub-wiring / jwt / csrf は feature を持たない独立クレートで、Server::gate で登録する。
他スキルとの使い分け — Server / Router / Middleware / CORS / WebSocket という語は複数のフレームワークで共通するため誤参照しやすい。hono(Web Standards JS)・fastify(Node.js ネイティブ)・go-echo(Go)は別フレームワークであり、いずれも本スキルとは別物。fandhe-frontend は同じ fandhe ファミリーの Rust 製フロントエンド層(SSR / SPA / SSG)であり、Rust 製バックエンド HTTP サーバーを調べる場合は本スキル(fandhe-backend)を参照すること。
対象バージョン: v0.6.1(2026-10-28 crates.io 公開、15 クレート lockstep、git 9a75278。各ページ内の「vX.Y.Z で追加」は導入バージョンを示す)。v0.6.0 で RequestGate::check に第 3 引数 extensions が加わる破壊的変更あり。
公式ドキュメント: https://fandhe-ai.github.io/fandhe-backend/
ディレクトリ構成
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
dpop.md
jwks-refresh.md
ws-gate-extensions.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
extensions.md
response.md
cookie.md
location.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
jwt.md
jwt-dpop.md
jwt-jwks-refresh.md
csrf.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
csrf-gate.md
jwt-gate.md
session-cookie-see-other.md
scripts/
README.md
install.md
dev.md
探索手順
タスクからカテゴリを引き、カテゴリの README.md で目的のページを特定する:
- 下記マッピング表でタスクに対応するカテゴリを探す。同名ファイルが複数カテゴリに存在する点に注意する(
extension-points.mdは guides = 拡張点の契約・自作手順、core = 型ごとの API 定義・全体フロー。overview.mdは getting-started = フレームワーク全体像、http = crate 内モジュール構成。minimal-server.md/streaming-response.md/graceful-shutdown.md/cors.md/compression.md/interceptor.mdは references と samples の双方に存在し、references = API 定義、samples = 動く配線例) - そのカテゴリの
references/{category}/README.mdを参照して目的のページを特定する - 該当ページの
.mdを Read して詳細を確認する
タスク → カテゴリ マッピング
| タスク | カテゴリ | 参照 README |
|---|---|---|
| フレームワークの全体像・2 つの核となる原則、クレート構成、feature フラグ一覧、インストール手順、最小構成のコード例を知りたい | getting-started | references/getting-started/README.md |
| 最小サーバから Middleware 実装までの段階的チュートリアル、feature 別サンプル一覧、4 拡張点の契約・自作手順、ストリーミング送信、graceful shutdown の手順、ガイド群の読み方・対象読者を知りたい | guides | references/guides/README.md |
Server / BoundServer / Handler / Middleware / RequestGate / UpgradeHandler / Interceptor / StreamingResponse の型定義・API、GateContext(RequestGate::check へ渡される接続コンテキスト、peer_addr)、BoundServer::rebind_handle / RebindHandle(稼働中 listener の無停止差し替え)、4 拡張点・plugin シームの全体フローを知りたい | core | references/core/README.md |
リダイレクト返却・レスポンス差し替え(Interceptor の intercept / map_response)を知りたい | core | references/core/README.md |
実行時診断の送信先を差し替えたい(Diagnostics trait / DiagnosticEvent / StderrDiagnostics / Server::diagnostics) | core | references/core/README.md |
ステータスコード付きアクセスログを取りたい(Middleware::on_response_with_status) | core | references/core/README.md |
Router のルーティング規則、{name} / {*name} パスパターン、HandlerFuture 等の公開型エイリアス、Router::merge による複数 Router の合成と衝突検出を知りたい | routes | references/routes/README.md |
WebSocket でサーバーから push したい(WsSender)、接続の開閉フック(on_open / on_close / CloseReason)、ハンドシェイク検証(handshake check)、パスパターン、ping keepalive を知りたい | plugins | references/plugins/README.md |
| sans-IO なリクエスト/レスポンスパーサー、Cookie・クエリ・フォーム・percent-decode、body フレーミング・chunked コーディング、読み取りバッファ、エラーレスポンス、ソケットオプション・keep-alive を知りたい | http | references/http/README.md |
セッション Cookie(SetCookie::session、__Host- / __Secure- 接頭辞)、POST 後 303(Response::see_other / SameOriginLocation)、Vary / no-store、フォーム上限(FormLimits)を知りたい | http | references/http/README.md |
JWT 検証ゲート(JwtGate / JwtPolicy / JWKS KeySet)、CSRF ゲート(CsrfGate、Sec-Fetch-Site / Origin)を使いたい | plugins | references/plugins/README.md |
DPoP(RFC 9449)で sender-constrained トークンを検証したい、JWKS を取り直して鍵ローテーションに追従したい(jwt-dpop / jwt-jwks-refresh) | plugins | references/plugins/README.md |
リクエスト単位の型付き拡張領域(RequestExtensions)を使いたい、ゲートの検証結果をハンドラへ渡したい(RequestGate::check の extensions 引数) | http | references/http/README.md |
WebSocket のアップグレード時にゲートの検証結果(extensions)を UpgradeHandler へ渡したい | guides | references/guides/README.md |
| DPoP 検証の導入手順、JWKS 取り直しの手順を知りたい | guides | references/guides/README.md |
| CORS・圧縮・静的配信・トレーシング・WebSocket・GraphQL・OpenAPI・WebRTC(in-process / proxy)・hub 共通配線・JWT / CSRF ゲートなど、プラグイン API を知りたい | plugins | references/plugins/README.md |
| 最小サーバ、CRUD ルーティング、Middleware / RequestGate / Interceptor 自作、CORS・WebSocket・GraphQL・ストリーミング・graceful shutdown・静的配信・圧縮・JwtGate・CsrfGate・セッション Cookie + 303 の動く配線例、実運用形テンプレートを知りたい | samples | samples/README.md |
| クレート導入・feature 有効化コマンド、ビルド・実行・テスト・lint・依存監査コマンドを知りたい | scripts | scripts/README.md |