Honoとは
HonoはWeb StandardsのRequest、Response、Fetch APIを軸にしたWebフレームワークです。Cloudflare Workers、Deno、Bun、Node.js、AWS Lambdaなど複数のJavaScript実行環境に対応しています。
同じAPIを共有しやすい一方で、データベース接続やファイル操作など、各ランタイム固有の機能まで完全に共通化されるわけではありません。
最小のルート
import { Hono } from 'hono';
const app = new Hono();
app.get('/', (c) => c.text('Hello Hono'));
app.get('/users/:id', (c) => {
return c.json({ id: c.req.param('id') });
});
export default app;
Contextを通じてリクエスト、レスポンス、環境変数などを扱います。入力検証はValidatorやZod連携などを使い、型定義だけで実行時検証を済ませないことが重要です。
主な機能
- ルーティングとルートグループ
- 認証、CORS、ロギングなどのミドルウェア
- JSXレンダリング
- Hono RPCによるクライアントとサーバーの型共有
- 各ランタイム向けアダプター
採用時の注意
- 利用するランタイムのNode.js API互換性を確認する
- CPU時間、接続時間、リクエストサイズなどホスティング側の制限を確認する
- 秘密情報は環境変数やSecret機能で管理する
- 性能やバンドルサイズは利用するミドルウェア込みで計測する