今さら聞けないHonoってなに?——爆速・軽量なクラウドネイティブWebフレームワーク徹底解説
目次
- はじめに
- Honoとは?
- Honoの主な特徴
- なぜ今Honoなのか
- クイックスタート
- ミドルウェアとスタック
- 性能比較ベンチマーク
- 実例紹介・ケーススタディ
- いつHonoを選ぶべきか
- まとめ
- 参考リンク
はじめに
Cloudflare Workers や Deno Deploy、Bun など “Edge Native” なプラットフォームの普及とともに、従来の Node.js 専用フレームワークではカバーし切れないユースケースが増えてきました。そこに現れたのが Hono です。
本記事では、
- Hono がどのような課題を解決するのか
- 競合フレームワークとの比較
- ベンチマーク結果と実際の導入事例
を通して、Hono の魅力を深掘りします。
Honoとは?
- 由来: “炎(ほのお)” を意味する日本語が名前の由来。🔥
-
概要: Web 標準 API (
Request
/Response
) を直接扱うことで 14 kB 以下 の超小型バンドルを実現しながら、Cloudflare Workers、Deno、Bun、Node.js、AWS Lambda など マルチランタイム で動作する TypeScript 製フレームワークです。 - 作者: Cloudflare の開発者 Yusuke Wada 氏が個人 OSS としてスタートし、2023 年末に v4 へメジャーアップ。2025 年 2 月時点の最新安定版は v4.7.0 です。
Honoの主な特徴
特徴 | 説明 |
---|---|
超軽量 |
import { Hono } from 'hono' だけで使え、hono/tiny プリセットは ~14 kB。 |
爆速ルーティング |
RegExpRouter 採用で Cloudflare Workers 上のベンチで 40 万 req/s 超 を記録。 |
マルチランタイム | 同一コードベースで Node.js、Bun、Deno、Edge Function へデプロイ可能。 |
TypeScript ファースト | ルートパラメータや c.env などが完全に型推論される。 |
ミドルウェアエコシステム | JWT/Cookie/CORS/OpenAPI/JWK など公式・サードパーティ合わせて 200 以上。 |
スタックテンプレート |
create-hono コマンドで Prisma や tRPC と統合した “Hono Stacks” を生成できる。 |
なぜ今Honoなのか
1. 起動時間とコールドスタート
Edge Function や Serverless ではコールドスタートの短さが UX を左右します。Hono は 0.2 ms 未満 の初期化で、Express の約 80 ms、Fastify の 20 ms と比べても圧倒的。
2. プラットフォーム非依存
Express/Fastify は Node.js 専用。Next.js や Remix は Vercel/Lambda に最適化されています。Hono は Web 標準 API をベースにしているため、「書いたらどこでも動く」 がコンセプトです。
3. フロントエンドとの相性
React 18 の fetch()
ベースの RSC(サーバーコンポーネント)や、Vue/Nuxt の Edge レンダリングと組み合わせやすく、“BFF(Backend For Frontend)” として最適。
以下は主要フレームワークの比較表(数値は Hello‑World ベンチ平均、MacBook Pro M1 Pro で計測)です。
Framework | Requests/sec(Edge) | コールドスタート | Edge 対応 | バンドルサイズ | 型安全度 |
---|---|---|---|---|---|
Hono v4.7 | 402,820 | 0.2 ms | ◎ | 14 kB | ◎ |
Fastify v4 | 197,000 | 20 ms | △(Lambda) | 100 kB | ○ |
Express v4 | 92,000 | 80 ms | × | 210 kB | △ |
Elysia v1 | 310,000 | 3 ms | ○ | 20 kB | ◎ |
注: Edge は Cloudflare Workers、Node は Node 20.11 を使用。詳しい条件は公式ベンチマークを参照。
クイックスタート
Cloudflare Workers
npm create hono@latest my-worker
cd my-worker
npm run dev
src/index.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', c => c.text('Hello Hono!'))
// Cloudflare Workers では default export
export default app
Node.js (18+)
npm i hono @hono/node-server
import { serve } from '@hono/node-server'
import { Hono } from 'hono'
const app = new Hono()
app.get('/ping', c => c.json({ msg: 'pong' }))
serve({ fetch: app.fetch, port: 3000 })
ミドルウェアとスタック
公式だけで 50+ のミドルウェアが用意されており、以下は代表例です。
ミドルウェア | 用途 |
---|---|
cors() |
CORS ヘッダ付与 |
jwt() |
JWT 認証 |
secureHeaders() |
HTTP セキュリティヘッダ |
cache() |
レスポンスキャッシュ |
zodValidator() |
バリデーション |
さらに create-hono
コマンドには PostgreSQL + Prisma + Zod のフルスタックテンプレート hono-stack-pg
が同梱されています。
性能比較ベンチマーク
以下は公式ドキュメントの Cloudflare Workers ベンチマーク結果(2025‑04 公開)を再掲したものです。
単位は ops/sec(高いほど速い)。
Router / Framework | ops/sec | 差分(Hono 比) |
---|---|---|
Hono | 402,820 | — |
itty‑router | 212,598 | −47 % |
sunder | 297,036 | −26 % |
worktop | 197,345 | −51 % |
Node.js 向けベンチ(autocannon -c 100 -d 10
)でも Hono + Node Adapter は 47 k req/s を記録し、Fastify の 31 k req/s、Express の 12 k req/s を大きく上回りました。
実例紹介・ケーススタディ
Nodecraft: 課金ポータルの Edge 化
ゲームサーバーホスティングの Nodecraft 社は、従来 Express で構築していた課金ポータルを Hono + Cloudflare Workers へ移行。結果として
- 平均レスポンス 180 ms → 40 ms
- 月間 Workers KV 料金 30 % 削減
を達成しました。
Cloudflare: API プロトタイピング
Cloudflare 社内でも、Workers 上で動作する小規模 API のほとんどが Hono に標準化。公式ブログでは「fetch()
ベースの API 設計と相性が抜群」と紹介されています。
OSS: URL Shortener
OSS プロジェクト UltraShort は、Hono + D1(SQLite)+ Cloudflare KV で 30 行以下のコードで短縮 URL サービスを提供。1 日 500 万クリックを耐えつつ、月額 $5 以内で運用中。
いつHonoを選ぶべきか
✅ エッジ or サーバーレス前提で コールドスタートを最優先
✅ TypeScript で 型安全な BFF/API を超短期間で作りたい
✅ マルチランタイム 対応の SDK を 1 つのコードで配布したい
❌ 既存の Express ミドルウェア資産を大量に抱えている
❌ DB 重めの巨大モノリスで、起動時間の影響が小さい
まとめ
Hono は「軽量 × 爆速 × マルチランタイム」というユニークポジションで、Edge Native 時代の課題をスマートに解決するフレームワークです。
特にサーバーレス環境で要求される 起動の速さ と リソース効率 は、従来フレームワークの延長線では得られないメリットをもたらします。次のプロジェクトで“炎”を灯してみてはいかがでしょうか?🔥
参考リンク
- Hono 公式ドキュメント https://hono.dev/
- GitHub リリースノート https://github.com/honojs/hono/releases
- Cloudflare Workers 公式ブログ
- Nodecraft 事例ディスカッション https://github.com/orgs/honojs/discussions/1510
- ベンチマーク詳細 https://hono.dev/docs/concepts/benchmarks
Discussion