Hono Framework là gì? Web framework edge siêu nhẹ chỉ 14KB

Hono Framework là gì?

Hono (có nghĩa là “lửa” trong tiếng Nhật 🔥) là một web framework siêu nhẹ được xây dựng hoàn toàn trên Web Standards. Nó cho phép bạn viết mã một lần và chạy trên bất kỳ môi trường JavaScript nào: Cloudflare Workers, Deno, Bun, Vercel, AWS Lambda, Node.js và thậm chí cả Service Worker.

Tác giả Yusuke Wada (Cloudflare Developer Advocate) bắt đầu phát triển Hono vào cuối năm 2021 vì anh cần một framework hoạt động trên Cloudflare Workers. Hiện nay, đến tháng 8/2026, Hono đã đạt 32.011 sao GitHub, khoảng 240 triệu lượt tải npm mỗi tháng và được các dự án lớn như Cloudflare D1, cdnjs, Clerk và Unkey sử dụng trong production.

Rack server trong trung tâm dữ liệu với nhiều cổng mạng và LED trạng thái
Hono chạy trên hạ tầng edge và data center hiện đại

Tính năng nổi bật

Siêu nhanh và siêu nhẹ

Hono được thiết kế để tối ưu về kích thước và tốc độ. Phiên bản hono/tiny (preset tối thiểu) có dung lượng dưới 14KB sau khi minify (khoảng 4,34 KB sau gzip). Để có thể so sánh, Express.js chiếm khoảng 572KB – Hono nhỏ gấp 40 lần!

Về hiệu năng, Hono dẫn đầu trong các benchmark:

  • Cloudflare Workers: Hono đạt ~402.820 ops/sec, nhanh gấp 2 lần itty-router (chính là router nhanh nhất trước đây).
  • Deno: Hono xử lý ~136.112 requests/sec, nhanh hơn Fast 1,3x và Megalo 2,1x.
  • Router registration: LinearRouter của Hono nhanh hơn FindMyWay (router của Fastify) đến 33 lần (1,82 µs vs 60,36 µs).

Nhờ sử dụng RegExpRouter – một biểu thức chính quy duy nhất được biên dịch trước khi chạy – Hono có thể định tuyến request mà không cần lặp qua từng pattern như Express.

Máy chủ dạng tháp viền phát sáng với mã nguồn chạy trên màn hình
Hono dẫn đầu benchmark hiệu năng giữa các framework web

Chạy trên 18+ môi trường (Write Once, Run Everywhere)

Hono hoạt động đồng nhất trên các nền tảng sau (cùng một mã nguồn):

  • Cloudflare Workers (workerd) & Cloudflare Pages
  • Deno
  • Bun
  • Fastly Compute
  • Vercel & Netlify
  • AWS Lambda & Lambda@Edge
  • Azure Functions
  • Google Cloud Run
  • Supabase Functions
  • Ali Function Compute
  • WebAssembly (WASI)
  • Service Worker
  • Node.js (qua @hono/node-server hoặc nguyên bản trong Node v22+)

Điều này có nghĩa bạn có thể viết một API cho Cloudflare Workers, sau đó chạy cùng mã trên Bun để develop local, hoặc deploy lên AWS Lambda mà không cần thay đổi một dòng code.

Dựa trên Web Standards

Hono chỉ sử dụng các API web tiêu chuẩn: Request, Response, URL, URLSearchParamHeaders từ Fetch API. Nó không phụ thuộc vào bất kỳ API chuyên dụng của Node.js nào, vì vậy mã của bạn có thể chạy trên môi trường edge và trong trình duyệt (qua Service Worker). Hono tuân thủ chuẩn WinterCG – nhóm làm việc về khả năng tương lai web giữa các môi trường.

Middleware giàu tính năng

Mặc dù nhỏ, Hono đi kèm với hơn 24 middleware built-in bao gồm:

  • Auth: Basic Auth, Bearer Auth, JWT, JWK
  • Security: CORS, CSRF Protection, Secure Headers, IP Restriction
  • Performance: ETag, Compress, Cache, Timeout, Body Limit
  • Developer Experience: Logger, Request ID, Timing, Pretty JSON, Context Storage
  • Tiện ích: JSX Renderer, HTML tag helper, WebSocket, Server-Sent Events

Cài đặt và bắt đầu

Hono là một gói npm thuần túy, không có dependency. Cài đặt bằng một trong các lệnh sau:

# npm
npm i hono

# yarn
yarn add hono

# pnpm
pnpm add hono

# bun
bun add hono

# deno (auto-install)
deno add npm:hono

Sau khi cài, bạn có thể tạo dự án mới bằng:

npm create hono@latest
# hoặc: yarn create hono, pnpm create hono@latest, bun create hono@latest

Lệnh trên sẽ sinh ra một dự án mẫu với cấu trúc cơ bản, bao gồm cả cách chạy trên các môi trường khác nhau (Cloudflare Workers, Bun, Deno, v.v.).

Ví dụ cơ bản

Hello World đơn giản nhất với Hono:

import { Hono } from 'hono'

const app = new Hono()

app.get('/', (c) => c.text('Hello Hono!'))

export default app

Bạn cũng có thể định nghĩa route với parameter và trả về JSON:

app.get('/user/:id', (c) => {
  const id = c.req.param('id')
  return c.json({ id: id })
})

Hono hỗ trợ literal types trong TypeScript cho path parameters, giúp IDE tự động gợi ý và kiểm tra kiểu.

Hono so với Express.js

Mặc dù có API tương tự Express, Hono có những khác biệt cơ bản:

Tiêu chí Hono Express.js
Bundle Size < 14KB (hono/tiny) ~572KB
Dependencies 0 Nhiều (express, accepts, etc.)
TypeScript Support First-class + literal types @types/express (community)
Web Standards ✅ (Fetch API) ❌ (Node.js specific)
Multi-runtime ✅ (18+ platforms) ❌ (Node.js-centric)
Edge Runtime ✅ Native ❌ Cần polyfill
Router RegExpRouter (single regex) path-to-regexp (linear loops)
RPC Mode Built-in (hc client)

Hono có thể nói là “Express nhưng chạy trên edge” – API quen thuộc nhưng được tối ưu cho môi trường mới.

RPC Mode – Type-safe client

Một tính năng độc đáo của Hono là hc client – một RPC client tự sinh từ kiểu TypeScript của server. Bạn chỉ cần định nghĩa API kiểu TypeScript một lần, hc sẽ tạo ra client hoàn toàn type-safe:

// Định nghĩa API type
type AppType = {
  '/api/user': {
    $get: (c: { query: { id: string } }) => Response
  }
}

// Tạo client
const client = hc('http://localhost:8787')

// Gọi API với auto-completion và type checking
const res = await client['/api/user'].$get({ query: { id: '123' } })

Điều này loại bỏ lỗi typing khi gọi API từ frontend hoặc service khác.

Ai đang dùng Hono?

Hono đã được triển khai trong production tại nhiều dự án hàng đầu:

  • Cloudflare: D1 (database), Workers KV, cdnjs – tất cả chạy trên Cloudflare Workers.
  • Clerk: Quản lý người dùng API trên Cloudflare Workers.
  • Unkey: API key management trên Cloudflare Workers.
  • OpenStatus: Nền tảng giám sát API chạy trên Bun.
  • Deno Benchmarks: Dùng để chạy các benchmark hiệu năng trên Deno.
  • BaseAI: Máy chủ AI địa phương dùng Hono làm API backend.

Kết luận

Hono là lựa chọn hoàn hảo cho những ai muốn xây dựng API siêu nhanh, chạy trên bất kỳ đâu và vẫn duy trì trải nghiệmDeveloper tốt. Với kích thước nhỏ gọn, hỗ trợ đa môi trường và dựa trên Web Standards, Hono không chỉ là một framework nữa – nó đangtrở thành tiêu chuẩn mới cho web tương lai.

Nếu bạn đang tìm kiếm một framework để:

  • Deploy trên Cloudflare Workers hoặc các nền tảng edge
  • Cần hiệu năng cao và kích thước nhỏ
  • Muốn viết mã một lần chạy trên nhiều môi trường
  • Thích Web Standards và muốn tránh vendor lock-in

thì Hono xứng đáng là lựa chọn đầu tiên của bạn.

Để tìm hiểu thêm, truy cập trang chủ hono.dev, đọc tài liệu tại docs, hoặc khám phá mã nguồn tại GitHub. Cộng đồng Discord tại discord.gg/KMh2eNSdxV và GitHub Discussions cũng là nơi tốt để hỏi đáp và chia sẻ kinh nghiệm.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Cloudflare R2: Object storage zero egress thay thế S3

Cloudflare R2 là gì? Cloudflare R2 là dịch vụ object storage được thiết kế để thay thế Amazon S3 mà không tính phí egress. Ra mắt từ 2021, R2 đã…

Xem thêm

Local-first software: Kiến trúc mới thay thế cloud dependency

Local-first software là gì? Kiến trúc mới thay thế cloud dependency Trong thập niên qua, phần mềm người dùng phụ thuộc hoàn toàn vào cloud — từ Google Docs, Notion…

Xem thêm

GaN charger là gì? Công nghệ sạc Nitride Gallium hiệu suất cao và nhiệt thấp

GaN charger là gì? Công nghệ sạc Nitride Gallium hiệu suất cao và nhiệt thấp GaN charger (sạc GaN – Gallium Nitride) đang thay thế hoàn toàn dòng sạc silicon…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất