RFC インデックス
Crowi 2.0 の設計提案 (RFC) の一覧
Crowi 2.0 の大きな設計判断は RFC (Request for Comments) として
リポジトリの docs/rfcs/ に文書化されています。このページは、現時点で
存在する RFC の一覧と概要をまとめたものです。
Note: Crowi v2 は alpha 開発中で、RFC の内容は実装の進行に合わせて 改訂されることがあります (各 RFC の「round」表記はその文書が何回目の 改訂かを示します) が、下記の提案の多くはすでにコードベースへ取り込み 済みです。「状態」欄は文書ではなく実装の進捗を示します。
RFC 一覧
| 番号 | タイトル | ターゲット | 状態 |
|---|---|---|---|
| RFC-0001 | プラグインアーキテクチャ | Crowi 2.0 | 実装済み |
| RFC-0002 | レンダラプラグインアーキテクチャ | Crowi 2.0 | Phase 1–6 実装済み / Phase 7 以降は継続中 |
| RFC-0003 | リアルタイム共同編集 | Crowi 2.0 | 実装済み |
| RFC-0004 | エディタ UX の強化 | Crowi 2.0 | 実装済み |
| RFC-0005 | ページプレゼンスとヘッダー UI | Crowi 2.0 | 実装済み |
| RFC-0006 | HTTP API: Express + ts-rest → Hono | Crowi 2.0 | 実装済み (2026-05-22) |
RFC-0001: プラグインアーキテクチャ
ファイルストレージ・外部検索・認証プロバイダ・通知シンクという 4 つの 互いに独立した関心事を、コアから切り出して独立配布可能なプラグインに する提案です。コアは、プラグインを 1 つも入れなくても動く「バッテリー 同梱」のデフォルトを持ちます。運用者は CLI でプラグインを追加し、管理 UI から設定します。Crowi 2.0 のプラグインモデルの土台です。
→ 利用者向けの解説は プラグインアーキテクチャ。
RFC-0002: レンダラプラグインアーキテクチャ
RFC-0001 のプラグインモデルに「レンダリング」という 5 つ目の関心事を 追加する提案です。Markdown のパース・AST 変換・埋め込み処理・HTML 描画 がプラグインの拡張ポイントになります。SSR ファースト、編集中は外部 API を叩かない、新しい記法を基本的に増やさない、という 3 つの設計上の約束が 特徴です。Phase 1–6 が実装済みで、Phase 7 以降が進行中です。
→ 利用者向けの解説は レンダラプラグイン。
RFC-0003: リアルタイム共同編集
Crowi 2.0 にリアルタイム共同編集を追加する提案です。同期エンジンに Yjs、
WebSocket バックエンドに Hocuspocus を使います。複数ユーザーが同じ
ページを同時編集でき、変更は CRDT セマンティクスで決定的に収束します。
正規の Markdown ソースは、明示的な保存時に Revision ドキュメントへ
書き出されます。
→ 利用者向けの解説は リアルタイム共同編集、 運用者向けは リアルタイム共同編集の運用。
RFC-0004: エディタ UX の強化
RFC-0003 の最小限の CodeMirror 6 エディタの上に、4 つの編集生産性機能を
追加する提案です。@user メンションと [[Page wikilink のオートコン
プリート、URL / 画像のペースト処理、ドラッグ&ドロップアップロード、
そして下書きページの管理ビュー (/me/creating-pages) です。Crowi 2.0
で実装済みです。
RFC-0005: ページプレゼンスとヘッダー UI
ページ閲覧画面に 2 つの関連変更を加える提案です。1 つはタイトル上の
ライブプレゼンス行 — 今そのページを見ているユーザーをリアルタイムに
表示し、編集中のユーザーをバッジで区別します。もう 1 つは
メタチップ行の再構成 — いいね・閲覧・コメント・バックリンクを統一
されたクリック可能なチップに変え、「今いる人」と「過去に見た人」の
シグナルを分離します。プレゼンスの WebSocket は RFC-0003 の /collab と
同じ api プロセスに同居 attach され、専用インフラを増やしません。
→ 利用者向けの解説は ページの基本操作。
RFC-0006: HTTP API — Express + ts-rest → Hono
/api/v2/* HTTP レイヤーのフレームワークを Express + ts-rest から
Hono + @hono/zod-openapi へ置き換える提案です。packages/api-contract/ src/schemas/ 配下の Zod スキーマはほぼそのまま移行し、ts-rest の
contract は createRoute のルート定義として書き直されます。api アプリ
は /api/v2/docs で Scalar API リファレンスを公開します。レガシーの
/api/* Express マウントもあわせて廃止されます。2026-05-22 に実装
完了しました。
→ 移行後のアーキテクチャは アーキテクチャ を参照。
RFC を読むには
RFC 本文はリポジトリの docs/rfcs/ 配下にあります。上の表のリンクから
GitHub 上で直接読めます。各 RFC は冒頭にステータス・ターゲットリリース・
依存する RFC を記したメタデータブロックを持ち、続いて Summary / Goals /
Non-goals / 詳細設計、という構成になっています。
関連ページ
- アーキテクチャ全体像 → アーキテクチャ
- プラグインの仕組み → プラグインアーキテクチャ
- 開発に参加する → コントリビュート