fandhe-backend

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

fandhe-backend

fandhe-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)。
他スキルとの使い分け —
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
)を参照すること。
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 标志拆分出的 plugin 形式提供(pay-for-what-you-use)。
与其他 skill 的区分 — 由于
Server
/
Router
/
Middleware
/
CORS
/
WebSocket
等词在多个框架中通用,因此很容易误引用。
hono
(Web Standards JS)、
fastify
(Node.js 原生)和
go-echo
(Go)都是其他框架,与本 skill 完全不同。
fandhe-frontend
是同一 fandhe 系列的 Rust 前端层(SSR / SPA / SSG);在调研 Rust 后端 HTTP 服务器时,应参考本 skill(
fandhe-backend
)。

ディレクトリ構成

目录结构

text
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
      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
text
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
      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

探索手順

检索步骤

タスクからカテゴリを引き、カテゴリの README.md で目的のページを特定する:
  1. 下記マッピング表でタスクに対応するカテゴリを探す。同名ファイルが複数カテゴリに存在する点に注意する(
    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 = 動く配線例)
  2. そのカテゴリの
    references/{category}/README.md
    を参照して目的のページを特定する
  3. 該当ページの
    .md
    を Read して詳細を確認する
根据任务确定类别,并通过相应类别的 README.md 定位目标页面:
  1. 在下方映射表中查找与任务对应的类别。请注意,同名文件可能存在于多个类别中(
    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 = 可运行的接线示例)
  2. 参考该类别的
    references/{category}/README.md
    ,定位目标页面
  3. 使用 Read 读取相应页面的
    .md
    ,确认详细信息

タスク → カテゴリ マッピング

任务 → 类别映射

タスクカテゴリ参照 README
フレームワークの全体像・2 つの核となる原則、クレート構成、feature フラグ一覧、インストール手順、最小構成のコード例を知りたいgetting-startedreferences/getting-started/README.md
最小サーバから Middleware 実装までの段階的チュートリアル、feature 別サンプル一覧、4 拡張点の契約・自作手順、ストリーミング送信、graceful shutdown の手順、ガイド群の読み方・対象読者を知りたいguidesreferences/guides/README.md
Server
/
BoundServer
/
Handler
/
Middleware
/
RequestGate
/
UpgradeHandler
/
Interceptor
/
StreamingResponse
の型定義・API、
GateContext
(
RequestGate::check
へ渡される接続コンテキスト、peer_addr)、
BoundServer::rebind_handle
/
RebindHandle
(稼働中 listener の無停止差し替え)、4 拡張点・plugin シームの全体フローを知りたい
corereferences/core/README.md
リダイレクト返却・レスポンス差し替え(
Interceptor
の
intercept
/
map_response
)を知りたい
corereferences/core/README.md
Router
のルーティング規則、
{name}
/
{*name}
パスパターン、
HandlerFuture
等の公開型エイリアスを知りたい
routesreferences/routes/README.md
sans-IO なリクエスト/レスポンスパーサー、Cookie・クエリ・フォーム・percent-decode、body フレーミング・chunked コーディング、読み取りバッファ、エラーレスポンス、ソケットオプション・keep-alive を知りたいhttpreferences/http/README.md
CORS・圧縮・静的配信・トレーシング・WebSocket・GraphQL・OpenAPI・WebRTC(in-process / proxy)・hub 共通配線など、feature 単位のプラグイン API を知りたいpluginsreferences/plugins/README.md
最小サーバ、CRUD ルーティング、Middleware / RequestGate / Interceptor 自作、CORS・WebSocket・GraphQL・ストリーミング・graceful shutdown・静的配信・圧縮の動く配線例、実運用形テンプレートを知りたいsamplessamples/README.md
クレート導入・feature 有効化コマンド、ビルド・実行・テスト・lint・依存監査コマンドを知りたいscriptsscripts/README.md
任务类别参考 README
了解框架全貌、两个核心原则、crate 构成、feature 标志列表、安装步骤及最小配置代码示例getting-startedreferences/getting-started/README.md
了解从最小服务器到实现 Middleware 的渐进式教程、按 feature 划分的示例列表、4 个扩展点的契约与自定义步骤、流式发送流程、graceful shutdown 步骤,以及各指南的阅读方式与目标读者guidesreferences/guides/README.md
了解
Server
/
BoundServer
/
Handler
/
Middleware
/
RequestGate
/
UpgradeHandler
/
Interceptor
/
StreamingResponse
的类型定义与 API、
GateContext
(传给
RequestGate::check
的连接上下文、peer_addr)、
BoundServer::rebind_handle
/
RebindHandle
(无停机替换运行中的 listener),以及 4 个扩展点和 plugin seam 的整体流程
corereferences/core/README.md
了解返回重定向、替换响应(
Interceptor
的
intercept
/
map_response
)
corereferences/core/README.md
了解
Router
的路由规则、
{name}
/
{*name}
路径模式,以及
HandlerFuture
等公开类型别名
routesreferences/routes/README.md
了解 sans-IO 请求/响应解析器、Cookie/查询/表单/percent-decode、body 分帧与 chunked 编码、读取缓冲区、错误响应,以及 socket 选项和 keep-alivehttpreferences/http/README.md
了解 CORS、压缩、静态文件服务、tracing、WebSocket、GraphQL、OpenAPI、WebRTC(in-process / proxy)、hub 通用接线等按 feature 划分的 plugin APIpluginsreferences/plugins/README.md
了解最小服务器、CRUD 路由、自定义 Middleware / RequestGate / Interceptor、CORS、WebSocket、GraphQL、流式传输、graceful shutdown、静态文件服务、压缩的可运行接线示例,以及实际应用形态模板samplessamples/README.md
了解 crate 引入、feature 启用命令,以及构建、运行、测试、lint 和依赖审计命令scriptsscripts/README.md