Hono (Japanese for "flame") is an ultrafast, lightweight web framework built entirely on Web Standards (Request, Response, fetch API), enabling it to run unchanged on Cloudflare Workers, Deno, Bun, Node.js, AWS Lambda, Vercel, and Fastly Compute. Unlike traditional Node.js frameworks that wrap platform-specific APIs, Hono's zero-dependency architecture delivers exceptional portability and performance (routinely handling 100,000+ requests/second on edge runtimes). Its TypeScript-first design provides end-to-end type safety through RPC mode without code generation, while built-in JSX support enables server-side rendering without React. One key insight: Hono's SmartRouter automatically selects the fastest routing algorithm (RegExpRouter for simple patterns, TrieRouter for complex ones), making it consistently 4-5x faster than Express's linear scan while supporting all route patterns.
What This Cheat Sheet Covers
This topic spans 17 focused tables and 130 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Multi-Runtime Adapters
The same Hono app runs almost unchanged across Cloudflare Workers, Bun, Deno, Node.js, AWS Lambda, and Vercel — what differs is the thin entry point that hands your app to each runtime's server. Most platforms need just one line (export default app), while a couple require an adapter package; this is the table to start from when you decide where your app will live.
| Runtime | Example | Description |
|---|---|---|
export default app | • Native support with zero configuration • Access bindings via c.env for KV, Durable Objects, R2• Use .dev.vars for local secrets. | |
Bun.serve({ fetch: app.fetch }) | • Native Bun.serve integration• Set idleTimeout for streaming/SSE• Fastest startup times (~15ms cold start). | |
Deno.serve(app.fetch) | • Import from jsr:@hono/hono• Native TypeScript support • Deploy directly to Deno Deploy. |