【2026年版】Honoの始め方 — Cloudflare Workersで超高速APIを作る


Honoのエッジデプロイ 🌐 Global CDN 🔥 Hono Asia Edge Node US Edge Node Europe Edge Node 👤 User 超低レイテンシ
Honoがエッジで動くイメージ
ひよこ ひよこ

ペンギン先生、「Hono」ってよく見かけるんだけど、どんなフレームワークなの?

ペンギン先生 ペンギン先生

Honoは「炎(ほのお)」という意味の日本語が名前の由来で、Edge環境で動く超高速なWebフレームワークだよ。束サイズが約14KBしかなくてとにかく軽量で、ベンチマークではクラス最速レベルの性能を誇るんだ。TypeScriptファーストで設計されていて、型安全に書けるのも特徴だね。

ひよこ ひよこ

「Edge環境」って聞いたことあるけど、普通のサーバーと何が違うの?

ペンギン先生 ペンギン先生

普通のWebサーバーは東京やアメリカのデータセンター1か所で動いていて、遠い国のユーザーはどうしても通信に時間がかかるよね。Edgeは世界中のCDNの拠点(エッジノード)でコードを動かす仕組みで、ユーザーに一番近いノードが応答してくれるんだ。だから物理的な距離が縮まって、レイテンシ(遅延)がぐっと減るんだよ。

ひよこ ひよこ

なるほど!でも、ExpressとかFastifyとかすでにあるのに、Honoを使う理由って何?

ペンギン先生 ペンギン先生

大きな違いは3つあるよ。まず、ExpressNode.jsに依存しているからCloudflare WorkersやDenoBunでは動かないんだ。HonoはWeb標準API(Fetch・Request・Response)だけで動くので、どのEdgeランタイムでも同じコードが使える。次に、TypeScriptを前提に設計されているから型の恩恵をフルに受けられる。そしてバンドルサイズが圧倒的に小さいから、コールドスタートが速いんだよ。

ひよこ ひよこ

どのランタイムで動くの?

ペンギン先生 ペンギン先生

Cloudflare Workers、BunDenoNode.jsAWS Lambda@Edgeに対応しているよ。一つのコードベースをどのランタイムでも動かせるから、「最初はCloudflareで試して、あとでBunに切り替える」みたいなことも簡単にできるんだ。Cloudflare Workersが一番人気で、無料枠も充実しているから最初のお試しにぴったりだね。

ひよこ ひよこ

実際にどうやって始めるの?

ペンギン先生 ペンギン先生

ターミナルで `npm create hono@latest` を実行するだけだよ。対話形式でプロジェクト名とテンプレートを選べる。Cloudflare Workersを使いたいなら「cloudflare-workers」を選択するんだ。あとは `npm install` して、`npm run dev` でローカルサーバーが立ち上がるよ。wranglerというCloudflareのCLIが自動で設定されるから、それ以上の準備はいらないんだ。

ひよこ ひよこ

APIはどうやって書くの?Expressみたいな感じ?

ペンギン先生 ペンギン先生

そう、Expressにとても似てるよ!`app.get('/hello', (c) => c.text('Hello Hono!'))` というふうに書く。JSONを返したいなら `c.json({ message: 'ok' })` とするだけ。`c` はContext(コンテキスト)オブジェクトで、リクエストの読み取りとレスポンスの生成を両方担うんだ。パスパラメータは `c.req.param('id')`、クエリは `c.req.query('key')` で取れるよ。

ひよこ ひよこ

認証とかCORSとかの設定はどうするの?

ペンギン先生 ペンギン先生

ビルトインのミドルウェアが揃っているから、`import { bearerAuth } from 'hono/bearer-auth'` のようにインポートして `app.use('/api/*', bearerAuth({ token: 'secret' }))` と書くだけで認証が掛かるんだよ。CORSも `import { cors } from 'hono/cors'` して `app.use('*', cors())` の1行でOK。`app.use()` にパスパターンを渡せば特定のルートだけに適用できるから、柔軟に組み合わせられるんだ。

ひよこ ひよこ

Cloudflareへのデプロイはどうやるの?

ペンギン先生 ペンギン先生

Cloudflareアカウントを作ってwranglerにログインしたら、`wrangler deploy` の1コマンドだけだよ。デプロイが完了するとCloudflareのグローバルネットワーク(200以上の拠点)に瞬時に展開されて、すぐにアクセス可能なURLが発行される。BFF(Backend For Frontend)やAPIゲートウェイWebhookサーバーといった用途で特に輝く存在だよ。

ひよこ ひよこ

BFFって何?

ペンギン先生 ペンギン先生

Backend For Frontendの略で、フロントエンド専用のAPIレイヤーのことだよ。たとえばスマホアプリが複数のマイクロサービスを呼ぶ代わりに、Honoで作ったBFFが一括して取りまとめてアプリに返す役割を担うんだ。Edgeで動くから応答が速く、TypeScriptで書くからフロントと型を共有しやすい。そのシナジーがHonoを選ぶ一番の理由になっているんだね。

ひよこ ひよこ

Expressを使い慣れてる人が乗り換えるのって大変?

ペンギン先生 ペンギン先生

驚くほど簡単だよ。ルーティングの書き方がほぼ同じだから、Expressのコードを見ながらHonoに書き直せる。違うのはレスポンスを `res.json()` じゃなく `c.json()` で返す点くらい。ミドルウェアも `app.use()` で挿入する発想は同じ。あとはWeb標準APIに沿って書けば、あとはどのランタイムでも動く——それがHonoの一番の魅力だね。

ひよこ ひよこ

本番でも使われてるの?

ペンギン先生 ペンギン先生

うん、国内外の企業が本番採用していて、Cloudflareの公式ドキュメントでも推奨フレームワークの一つに挙げられているよ。日本発のOSSでありながら世界中でスターが集まっていて、2024〜2026年にかけて急速に普及したんだ。コミュニティも活発で、HonoXというメタフレームワークも登場して静的サイト生成まで対応できるようになっているんだよ。