Hono は『どのランタイムでも動く』軽量Webフレームワーク
Hono は Cloudflare Workers / Deno / Bun / Node.js / Vercel / AWS Lambda 等で動く軽量なTypeScriptフレームワークです。本記事では編集部の視点で、実務での使い方を公開情報をもとに整理します。Next.js App Router もご参考に。
Hono の特徴
(1) マルチランタイム:1つのコードを複数環境で。(2) 超軽量:依存ゼロ・バンドルサイズ小。(3) 型安全RPC:Hono RPC で tRPC 的な型同期。(4) Web 標準API:fetch/Request/Response。(5) ミドルウェア充実:認証/CORS/ロギング等公式提供。エッジコンピューティングと相性が良いです。
基本構造
(1) app.get/post/put/delete:Express ライクなルーティング。(2) app.use:ミドルウェア登録。(3) Context (c):req/res/env のラッパー。(4) c.json/c.text/c.html:レスポンス生成。(5) app.route:サブルーター。
型安全RPC の使い方
(1) app の型を export:クライアント側で参照。(2) hc (hono client):型同期したクライアント生成。(3) パス/メソッド/ペイロードが全て型補完。(4) Zod 連携:ランタイム検証+型推論。(5) tRPC との比較:HTTP リクエストベース。TypeScript 上級 もご参考に。
Cloudflare Workers での運用
(1) wrangler:CLI でローカル開発・デプロイ。(2) KV / D1 / R2 / Queues連携。(3) Edge 実行:世界中で低レイテンシ。(4) 制約:CPU 50ms 上限(無料枠)等。(5) Service Bindings:Workers 間連携。CDN/Edge 実践 もご参考に。
ミドルウェアパターン
(1) basic-auth / bearer-auth / jwt:認証。(2) cors:CORS 制御。(3) logger:構造化ログ。(4) cache:レスポンスキャッシュ。(5) カスタムミドルウェア:c と next で実装。OAuth/OIDC 実装 もご参考に。
テストとデバッグ
(1) app.request:HTTPレベルでテスト可能。(2) vitest 連携がスムーズ。(3) wrangler dev:実環境に近いローカル実行。(4) Miniflare:Workers エミュレータ。(5) 本番ログ:tail / Logpush。
失敗しがちなパターン
(1) Workers のCPU 制限超過。(2) Node 固有 API 使用:Workers で動かない。(3) KV/D1 のレイテンシ過小評価。(4) ランタイム別差異の見落とし。(5) ローカルと本番の差。対策は、(1)処理分割、(2)Web標準API使用、(3)応答時間計測、(4)型でランタイム指定、(5)Miniflare 活用、です。