Web 標準
Hono は Fetch などの Web 標準だけを使用します。これらはもともと fetch 関数で使われていた、HTTP リクエストとレスポンスを扱う基本的なオブジェクトです。Requests と Responses のほかに、URL、URLSearchParam、Headers などがあります。
Cloudflare Workers、Deno、Bun も Web 標準を基盤としています。例えば、「Hello World」を返すサーバーは次のように書けます。このコードは Cloudflare Workers と Bun で動作します。
ts
export default {
async fetch() {
return new Response('Hello World')
},
}Hono は Web 標準だけを使用するため、それらをサポートする任意のランタイムで動作します。Node.js アダプターも提供しています。Hono は次のランタイムで動作します。
- Cloudflare Workers (
workerd) - Deno
- Bun
- Fastly Compute
- AWS Lambda
- Node.js
- Vercel (edge-light)
- WebAssembly(
wasi:http経由で WebAssembly System Interface(WASI) を使用)
Netlify などのプラットフォームでも動作します。同じコードをすべてのプラットフォームで実行できます。
Cloudflare Workers、Deno、Shopify などは WinterCG を立ち上げ、Web 標準による「Web の相互運用性」の実現を議論しています。Hono もその取り組みに続き、Web 標準のための標準を目指します。