利用者向けガイド
docs/guide/ は fandhe-backend を使うための入口です。 内部の要件・設計記録(docs/design/・docs/spec/)とは責務が異なり、 本ディレクトリは「どう使うか」だけを扱います。
対象読者
docs/spec/04-requirements.md の適用範囲に合わせ、次の 3 層を読者として想定します。
- 一次消費者: Fandhe 内製サービスからフレームワークを使うチーム
- 二次消費者: 一次消費者が構築したサービスを利用するチーム
- 外部ユーザー: OSS 公開後に本リポジトリを直接利用するユーザー
いずれの読者も、まずは getting-started.md から読み進めてください。
文書一覧
| 文書 | 内容 |
|---|---|
getting-started.md | crates.io からの依存追加〜最小サーバ起動〜動作確認までの最短手順 |
feature-samples.md | Cargo feature(websocket / graphql / openapi / webrtc 系 / tracing / hub-wiring)ごとの最小サンプルと実行手順 |
tutorial.md | 最小サーバ→拡張点の実装→feature 有効化まで段階的に学ぶチュートリアル |
サンプルコードの原則(二重管理をしない)
本ガイドはサンプルコードの全文を markdown に複製しません。実行可能なサンプルは crates/core/examples/*(cargo run --example <name> で実行できる)と crates/core/src/lib.rs のクレート doc(cargo test --doc で検証される doc test)を 「正」とし、本ガイドはそれらへの導線と実行手順のみを提供します。 markdown に複製したコードは cargo test --doc の検証対象にならずドリフトするため (AI ファースト保守性、AGENTS.md 参照)、変更が入った場合は サンプル側を更新すればガイドの記載(コマンド・パス・feature 名)はそのまま有効です。
crates/core/examples/* は feature 単体の実装パターンを示す最小 example ですが、 独立したプロジェクトとしてそのまま cargo run したい場合は examples/ (Next.js 流の with-<feature> 独立サンプル集)を、複数 feature を組み合わせた 実運用形の雛形は templates/app/ を参照してください。サンプル置き場の重複回避方針の詳細は examples/README.md にまとめてあります(本節では再掲しません)。
設計・要件との対応
- 実装がどう作られているかは
docs/design/を参照(例:plugin-boundary.mdはプラグイン境界パターンの 詳細) - 要件・受け入れ基準は
docs/spec/04-requirements.mdを参照