Hono.js dan Cloudflare Workers: API Edge dengan Bun
FR
Fajar Riz

Dipublikasikan 31 Mei 2026

Hono.js dan Cloudflare Workers: API Edge dengan Bun

Hono.js adalah web framework ultra-lightweight yang dirancang khusus untuk edge runtime seperti Cloudflare Workers, Deno, dan Bun. Dibandingkan framework tradisional, Hono memiliki cold start yang hampir nol dan footprint memory sangat kecil. Dalam tutorial ini, kita akan membangun REST API menggunakan Hono.js, menjalankannya dengan Bun runtime, dan deploy ke Cloudflare Workers untuk mendapatkan latensi global di bawah 50ms.

1. Instalasi Bun dan Inisialisasi Project Hono

Pastikan Bun sudah terinstall di sistem. Jalankan perintah berikut untuk memeriksa versi:

bun --version

Jika belum install, ikuti panduan resmi Bun. Selanjutnya buat project Hono dengan template Cloudflare Workers:

bun create hono@latest my-edge-api
cd my-edge-api
bun install

Template default akan menghasilkan struktur folder dengan src/index.ts sebagai entry point. Sumber referensi framework tersedia di GitHub Hono.js.

2. Membuat Routing dan Middleware Dasar

Hono menggunakan syntax routing yang familiar seperti Express. Edit src/index.ts:

import { Hono } from "hono";

const app = new Hono();

app.use("*", async (c, next) => {
  console.log(`[${c.req.method}] ${c.req.url}`);
  await next();
});

app.get("/", (c) => c.json({ message: "Hono Edge API ready" }));

app.get("/tasks", (c) => {
  const tasks = [
    { id: 1, title: "Deploy ke edge" },
    { id: 2, title: "Optimasi cache" },
  ];
  return c.json(tasks);
});

app.post("/tasks", async (c) => {
  const body = await c.req.json();
  return c.json({ created: body }, 201);
});

export default app;

Middleware di Hono bersifat modular. Kamu bisa menggunakan built-in middleware untuk CORS, JWT validation, atau rate limiting tanpa konfigurasi tambahan.

3. Konfigurasi Deploy ke Cloudflare Workers

Install Wrangler CLI sebagai tools deployment:

bun add -d wrangler

Buat file wrangler.toml di root project:

name = "my-edge-api"
main = "src/index.ts"
compatibility_date = "2026-05-31"

Jalankan deploy dengan perintah:

bunx wrangler login
bunx wrangler deploy

Cloudflare akan memberikan URL global dengan CDN di 300+ kota. Dokumentasi lengkap deployment bisa dicek di Cloudflare Workers Docs.

4. Integrasi Database dengan D1 atau KV

Cloudflare D1 adalah database SQLite yang dihosting di edge. Untuk integrasi dengan Hono, install binding D1:

bun add @cloudflare/workers-types

Tambahkan konfigurasi D1 di wrangler.toml:

[[d1_databases]]
binding = "DB"
database_name = "tasks-db"
database_id = "your-db-id"

Lalu akses D1 dari Hono route:

app.get("/db-tasks", async (c) => {
  const db = c.env.DB;
  const { results } = await db.prepare("SELECT * FROM tasks").all();
  return c.json(results);
});

Alternatifnya, gunakan Cloudflare KV untuk key-value store dengan latensi sub-millisecond jika data tidak memerlukan query kompleks.

5. Optimasi Performance dan Caching

Manfaatkan Cloudflare Cache API untuk mengurangi beban compute:

app.get("/cached-tasks", async (c) => {
  const cache = caches.default;
  const cacheKey = new Request(c.req.url);
  let response = await cache.match(cacheKey);
  
  if (!response) {
    const tasks = await fetchTasksFromDB();
    response = new Response(JSON.stringify(tasks), {
      headers: { "Content-Type": "application/json" },
    });
    c.executionCtx.waitUntil(cache.put(cacheKey, response.clone()));
  }
  
  return response;
});

Gunakan Headers object untuk mengatur cache TTL. Kombinasi Hono + Cloudflare Cache API bisa menangani ribuan request per detik tanpa database hit.

Kesimpulan

Hono.js dan Cloudflare Workers adalah kombinasi sempurna untuk developer yang ingin membangun API edge dengan overhead minimal. Bun runtime menambah kecepatan development dengan package manager built-in dan TypeScript support native. Untuk eksplorasi lebih lanjut, kunjungi repository Hono.js dan dokumentasi Cloudflare Workers.