generated at
DenoのWebアプリケーションフレームワークの比較
はじめに
DenoにおけるWebアプリケーションフレームワークについてまとめています
Denoのnpmパッケージサポートにより、Node.js製のフレームワークもDenoで動かせる場合があります (Node.jsのWebアプリケーションフレームワーク)

フレームワーク
@std/http/routeというルーティング用の軽量モジュールが提供されています
--serve を指定してdeno initを実行すると、このモジュールとdeno serveをベースにしたプロジェクトのテンプレートを生成してくれます
追記) v1.0.6 @std/http/unstable-route にリネームされました (release-2024.09.12)
安定したら、再び @std/http/route にリネームされると思います
また、Cookieやコンテントネゴシエーション, ETagなどに関する様々なユーティリティも提供してくれます
一時期、ミドルウェアAPIを提供することも検討されていました (feat(http): middleware #3785)
優先度は低いようですが、今後、再び検討される可能性もあるかもしれないです

Node.jsKoaに大きな影響を受けた非常にシンプルなフレームワークです
Deno Deployをサポートしています
Node.jsでも動作します (@oakserver/oak)
BunCloudflare Workersのサポートも追加されました (v14.1.0)

様々なプラットフォームをサポートする高速なWebフレームワーク
Cloudflare Workersに加えて、Compute@EdgeDeno (v1.6.0〜)、BunNode.jsなどもサポート
Oakなどと同様のマイクロフレームワークとしての機能に加えて、ZodベースのバリデーションやタイプセーフなRPCの仕組み, クライアントコンポーネント (hono/jsx), SSGなどの様々な機能が提供されているのが特徴です
思想としては、Node.jsのフレームワークで例えるとExpressKoaというよりは、Fastifyとかに近いのかなと推測しています
Honoxというメタフレームワークも提供されています
Ultraが採用しているので、そちらを使う場合は、Honoが利用できます

Bunでの使用に最適化されたWebフレームワーク
WinterCGへの準拠が意識されていて、Denoでも利用が可能なようです

デコレーターを使用してルーティングの定義などを行う
Stage 3 DecoratorsベースのDIコンテナが組み込まれています
Deno Deployで動かすための軽量版も提供されています

Nest.jsに影響を受けたフルスタックフレームワークで、公式で様々なモジュールが提供されています
MongoDB/Deno KVベースのデータベースモジュール (https://github.com/Savory/Danet-Database)
Deno Queuesベースのメッセージングモジュール
Deno Cronベースのスケジューリングモジュール
WebSocketのサポート
Nest.jsライクなモジュールシステムやDIコンテナなどを提供します
Freshとの統合もサポート
内部的にはOakが採用されています

Expressのポート
DenoのNode.js互換モードが成熟してExpressが安定して動作するようになったら、メンテナンスモードに移行する予定のようです

Nuxt 3などの内部で採用されているフレームワーク
プリセットの仕組みにより、様々なランタイムで動作させることができる
v2.5.0以降、Denoプリセットが実装されている
Nitroに限らず、UnJSのプロジェクト全般でDenoのサポートを進めていくことも検討されているようです (https://x.com/_pi0_/status/1842187143692599380)

Deno Deployで動作させることを想定したフレームワーク
PreactコンポーネントのSSRをサポート
カスタムハンドラを実装することで、APIエンドポイントなどを作成できます。

Next.jsに影響を受けたフレームワーク
こちらもFreshと同様にAPIエンドポイントを作成することもできます。

ベンチマーク

関連ページ