Hono ほの
簡単に言うとこんな感じ!
HonoはWeb APIを作るための「超軽量・超高速」なフレームワークだよ!「炎(Flame)」という意味の日本語が名前の由来で、Cloudflareなどのエッジ環境でもサクサク動くのが最大の強みなんだ。Express.jsの使い心地そのままに、どこでも動く万能さが魅力ってこと!
Honoとは
Hono(ほの)は、日本人開発者の𝕏ユーザー「yusukebe」こと三浦辰志氏が2022年に公開したオープンソースのWebフレームワークです。名前は日本語の「炎(ほのお)」に由来しており、軽量・高速・どこでも動くという特性を端的に表しています。TypeScriptファーストで設計されており、型安全にAPIを記述できる点が開発者から高く評価されています。
Honoが特に注目される理由は、エッジコンピューティング(ユーザーに近いサーバーで処理を行う仕組み)との親和性の高さです。Cloudflare Workers・Deno Deploy・AWS Lambda Edge・Fastlyなど、従来のNode.jsが動かない環境でも動作します。さらに、Node.jsやBunといった従来環境にも対応しており、1つのコードを書けば多くのプラットフォームで動かせる「マルチランタイム対応」が最大の特徴です。
ビジネスパーソンが知っておくべきポイントとしては、「APIサーバーを作りたいけど、Cloudflareで動かしたい」「サーバーレス環境でバックエンドを構築したい」というプロジェクトで採用候補に上がるフレームワークだということです。近年のスタートアップやサーバーレス志向のプロジェクトを中心に急速に普及しています。
Honoの主な特徴と構造
| 特徴 | 内容 |
|---|---|
| 超軽量 | コアサイズは約13KB以下。起動が速くエッジ環境向き |
| マルチランタイム | Cloudflare Workers / Deno / Bun / Node.js など対応 |
| TypeScriptファースト | 型推論が強力で、補完が効いた状態でAPIを記述できる |
| 高速ルーター(Trie-based) | RegExpMatchRouterやSmartRouterなど複数の実装を持つ |
| ミドルウェアが豊富 | 認証・CORS・ロガー・キャッシュなど標準ミドルウェアが揃う |
| RPC機能(hc) | サーバーとクライアントで型を共有できるRPC的呼び出しが可能 |
コード例で雰囲気をつかもう
import { Hono } from 'hono'
const app = new Hono()
// GETリクエストに応答するルート定義
app.get('/', (c) => c.text('Hello, Hono!'))
app.get('/user/:id', (c) => {
const id = c.req.param('id')
return c.json({ userId: id })
})
export default app
Express.jsを使ったことがある人なら、ほぼそのままの書き方で移行できます。c(コンテキスト)オブジェクト経由でリクエスト・レスポンスを扱う設計が特徴です。
対応ランタイム一覧
Cloudflare Workers ← エッジ環境の代表格
Deno Deploy ← DenoのサーバーレスPaaS
Bun ← 高速JSランタイム
AWS Lambda ← AWSのサーバーレス
Fastly Compute ← CDNエッジ
Node.js ← 従来環境にも対応
Vercel Functions ← フロントエンド系PaaS
歴史と背景
- 2021年末 — Cloudflare Workers向けの軽量フレームワークとして開発スタート
- 2022年1月 — GitHubで公開。「Cloudflare Workers専用」からスタート
- 2022年後半 — Deno・Bunへの対応を追加。マルチランタイム路線へ舵を切る
- 2023年 — v3.0リリース。RPCクライアント(
hc)・ストリーミング対応など大幅強化 - 2023年〜2024年 — GitHub Starが急増(2万超)。日本発フレームワークとして国際的な注目を集める
- 2024年 — v4.0リリース。
HonoX(フルスタックフレームワーク)の実験的提供も開始 - 現在 — Cloudflare公式ドキュメントでも推薦フレームワークの一つとして掲載
Honoが生まれた背景には、エッジコンピューティングの台頭があります。従来のNode.js専用フレームワーク(ExpressやFastifyなど)はCloudflare Workersのようなエッジ環境では動作しませんでした。そこで「エッジでも動く、でも書き心地はExpressライク」というニーズに応えたのがHonoです。
主要フレームワークとの比較
代表フレームワーク比較表
| フレームワーク | 軽量性 | エッジ対応 | TypeScript | 学習コスト |
|---|---|---|---|---|
| Hono | ◎ | ◎ | ◎ | 低〜中 |
| Express | ○ | × | △ | 低 |
| Fastify | ○ | △ | ○ | 中 |
| NestJS | △ | × | ◎ | 高 |
| Elysia (Bun) | ◎ | △ | ◎ | 中 |
「エッジ対応」ってなぜ重要?
エッジコンピューティングとは、世界中に分散したサーバー(エッジノード)でコードを動かす仕組みです。ユーザーに近い場所で処理するので、通信の遅延が減り、レスポンスが速くなります。Cloudflare Workersはその代表格で、「普通のNode.jsコードは動かない」という制約があります。Honoはこの制約を最初から意識して設計されているため、エッジ環境に最も適したフレームワークの一つです。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 9110 | HTTP Semantics(HTTPの基本仕様。Honoが扱うリクエスト・レスポンスの基盤) |
| RFC 9112 | HTTP/1.1(メッセージ構文とルーティングの基礎) |
| RFC 7235 | HTTP Authentication(Honoの認証ミドルウェアが準拠する認証仕様) |
| RFC 6455 | WebSocket(HonoはWebSocket対応も持つ) |
関連用語
- ./140-cloudflare-workers.md — エッジ環境でJavaScriptを動かすCloudflareのサーバーレス実行環境
- ./141-serverless.md — サーバー管理不要でコードを動かすアーキテクチャ
- ./142-typescript.md — JavaScriptに型を加えた言語。Honoの設計基盤
- ./144-rest-api.md — HonoでよくつくるAPI設計スタイル
- ./145-middleware.md — リクエストとレスポンスの間に挟む処理の仕組み
- ./146-edge-computing.md — ユーザーに近いサーバーで処理を行う分散コンピューティング
- ./147-bun.md — Honoが対応する高速JavaScriptランタイム
- ./148-web-framework.md — Webアプリケーションをつくるためのソフトウェアのひな型