Elysia vs Hono Karşılaştırması

Bun-öncelikli, TypeBox tabanlı 'tek kaynaktan doğruluk' framework'ü

VS
Hono

Runtime-agnostic, minimal çekirdekli, 4.x'te iki yıldır kararlı

17 dk okumaBackend

Hızlı Karar

Tek doğru cevap yok. Yalnızca Bun'da kalacak, en agresif uçtan uca tip çıkarımını ve TypeBox tabanlı "tek kaynaktan doğruluk" DX'ini isteyen yeni bir proje için Elysia'yı seç — ama 2.0'ın hâlâ beta olduğunu ve 1.4.x'in yalnızca güvenlik yaması aldığını bilerek. Üretim istikrarı, çoklu-runtime esnekliği ve daha geniş kullanım öncelikliyse Hono'yu seç: 4.x hattı iki yıldır breaking-change'siz ilerliyor, haftalık indirmesi Elysia'nın ~57 katı.

ElysiaHono
Tam sonucu oku

Puan Karşılaştırması

Grafik yükleniyor...

Detaylı Puanlama

Detaylı Puanlama: Elysia ve Hono — kategori bazında 10 üzerinden puanlar
KategoriElysiaHono
Performans
9/10
8/10
Öğrenme Kolaylığı
7/10
8/10
Ekosistem
6/10
8/10
Topluluk
6/10
9/10
İş Pazarı
4/10
7/10
Gelecek
6/10
8/10

Artıları & Eksileri

Elysia

Artıları

  • Elysia.t (TypeBox) ile validation, tip çıkarımı ve OpenAPI şeması aynı kaynaktan geliyor
  • Eden Treaty ile uçtan uca tip-güvenli RPC, WebSocket ve unit-test desteği dahil
  • Standard Schema desteğiyle Zod, Valibot, ArkType gibi mevcut şemaları aynı handler'da kullanabilme
  • @elysia/openapi birinci parti — route tanımından otomatik Scalar UI
  • Bun'ın performans özellikleriyle (native HTTP/2, hızlı Buffer I/O) doğrudan uyumlu tasarım
  • Resmi Interactive Tutorial + Ask Elysia AI + llms.txt ile hızlı öğrenme eğrisi

Eksileri

  • Elysia 2 hâlâ beta — resmi olarak 'stabil değil', üretimde risk taşıyor
  • 1.4.x dalı artık yalnızca güvenlik yaması alıyor, yeni özellik gelmiyor
  • Haftalık npm indirmesi Hono'nun ~1/57'si — ekosistem ve topluluk desteği daha küçük
  • Pazarlama Bun-öncelikli; çoklu-runtime senaryosu Hono kadar öne çıkmıyor
  • Bilinen açık bug: t.Optional(t.UnionEnum(...)) boş yerine ilk enum değerini varsayıyor

En Uygun

Yalnızca Bun'da kalacak greenfield API projeleriOpenAPI şemasının route tanımından otomatik üretilmesini isteyen ekiplerTypeBox/Standard Schema tabanlı tek-kaynak validation isteyen projelerBeta riskini kabul edip erken benimseyici olmak isteyen küçük-orta ekipler

Hono

Artıları

  • 'Aynı kod her platformda çalışır' — Cloudflare, Fastly, Deno, Bun, AWS, Node.js desteği
  • 4.x hattı 2+ yıldır stabil; son 5 sürümde breaking-change yok
  • hono/tiny preset 14KB altı — edge/serverless için minimal ayak izi
  • Haftalık 46,7M npm indirmesi — geniş, olgun ekosistem ve topluluk
  • Hono Client (hc) ile tip çıkarımı, Validator input + c.json() output'u infer ediyor
  • İnce çekirdek felsefesi — istediğin validator/middleware'i özgürce seçebilme

Eksileri

  • Validation çekirdekte değil; content-type header'ı eksik istekte sessizce boş obje {} dönebiliyor
  • OpenAPI üretimi birinci parti değil — OpenAPIHono + createRoute() ile elle kurulum gerekiyor
  • RPC (hc) monorepo'da çalışması için hem client hem server'da strict:true şart, aksi halde tip inference kırılıyor
  • Otomatik Swagger/OpenAPI üretimi hâlâ açık bir feature request (GitHub #2970, Haziran 2024'ten beri)
  • Resmi bir customer/case-study sayfası yok — üretim kanıtı dolaylı (indirme hacmi + ekosistem varlığı)

En Uygun

Cloudflare Workers başta olmak üzere edge/serverless hedefleyen projelerRuntime'ı değiştirme ihtimali olan ya da birden fazla runtime'da koşması gereken API'lerMevcut Zod/Valibot yatırımını koruyarak minimal bir çekirdek isteyen ekiplerBreaking-change riskine toleransı düşük, bugün üretime koyacak projeler

Kod Karşılaştırması

Elysia
// Elysia - TypeBox validation + Eden Treaty ile tip-güvenli endpoint
import { Elysia, t } from "elysia";

const app = new Elysia()
  .post(
    "/users",
    ({ body }) => {
      // body burada zaten { name: string; age: number } olarak tipli
      return { id: crypto.randomUUID(), ...body };
    },
    {
      body: t.Object({
        name: t.String({ minLength: 2 }),
        age: t.Number({ minimum: 0 }),
      }),
      response: t.Object({
        id: t.String(),
        name: t.String(),
        age: t.Number(),
      }),
    }
  )
  .get("/users/:id", ({ params, status }) => {
    if (!params.id) return status(404, "User not found");
    return { id: params.id, name: "Ada" };
  })
  .listen(3000);

export type App = typeof app;

// client.ts - Eden Treaty ile uçtan uca tip çıkarımı
import { treaty } from "@elysia/eden";
import type { App } from "./server";

const api = treaty<App>("localhost:3000");

const { data, error } = await api.users.post({
  name: "Ada Lovelace",
  age: 28,
});

if (error) {
  console.error("Request failed:", error.value);
} else {
  console.log("Created user:", data.id);
}
Hono
// Hono - zValidator + Hono Client (hc) ile tip-güvenli, çoklu-runtime endpoint
import { Hono } from "hono";
import { zValidator } from "@hono/zod-validator";
import { z } from "zod";

const userSchema = z.object({
  name: z.string().min(2),
  age: z.number().min(0),
});

const app = new Hono()
  .post("/users", zValidator("json", userSchema), (c) => {
    const body = c.req.valid("json");
    // body burada zaten { name: string; age: number } olarak tipli
    return c.json({ id: crypto.randomUUID(), ...body }, 201);
  })
  .get("/users/:id", (c) => {
    const id = c.req.param("id");
    if (!id) return c.json({ error: "User not found" }, 404);
    return c.json({ id, name: "Ada" });
  });

export type AppType = typeof app;

// Aynı kod Bun, Cloudflare Workers, Deno veya Node'da değişmeden çalışır:
export default app;

// client.ts - hc ile tip çıkarımı (monorepo'da tsconfig'te strict:true şart)
import { hc } from "hono/client";
import type { AppType } from "./server";

const client = hc<AppType>("http://localhost:8787");

const res = await client.users.$post({
  json: { name: "Ada Lovelace", age: 28 },
});

if (res.ok) {
  const user = await res.json();
  console.log("Created user:", user.id);
} else {
  console.error("Request failed:", res.status);
}

Sonuç

Tek doğru cevap yok. Yalnızca Bun'da kalacak, en agresif uçtan uca tip çıkarımını ve TypeBox tabanlı "tek kaynaktan doğruluk" DX'ini isteyen yeni bir proje için Elysia'yı seç — ama 2.0'ın hâlâ beta olduğunu ve 1.4.x'in yalnızca güvenlik yaması aldığını bilerek. Üretim istikrarı, çoklu-runtime esnekliği ve daha geniş kullanım öncelikliyse Hono'yu seç: 4.x hattı iki yıldır breaking-change'siz ilerliyor, haftalık indirmesi Elysia'nın ~57 katı.

Ücretsiz Danışmanlık Al
SSS

Sıkça Sorulan Sorular

Yalnızca Bun'da kalacaksan Elysia, runtime değiştirme ihtimalin varsa Hono. Gerekçe: Elysia Bun-öncelikli tasarlanmış ve pazarlamasının merkezinde Bun performansı var; Hono ise runtime-agnostic — resmi anasayfası "aynı kod Cloudflare, Fastly, Deno, Bun, AWS ve Node.js'te çalışır" diyor. İkisi de Bun'da native koşar, fark taşınabilirlikte ve en agresif tip çıkarımını isteyip istemediğinde.

Giriş

Bun projene bir API katmanı yazmaya oturduğunda önünde iki isim beliriyor: Elysia ve Hono. İkisi de uçtan uca tip güvenliği vaat ediyor, ama felsefeleri kökten farklı — ve ikisi de aynı anda büyük bir dönemeçten geçiyor. Elysia tam bir geçiş içinde: 30 Temmuz 2026'da duyurulan Elysia 2 bir "complete rewrite" ve kendi blog yazısı dürüstçe "It's not a stable release yet" diyor. 1.4.x dalı artık yalnızca güvenlik yaması alıyor, yeni özellik geliştirmesi tamamen 2.0'a kaydı. Hono ise tersi noktada: 4.x hattı iki yılı aşkın süredir sürüyor, son beş sürümünde (v4.13.5-v4.13.9) tek bir breaking başlığı yok. Kimliği de farklı bir eksende kurulu: "Cloudflare, Fastly, Deno, Bun, AWS ya da Node.js'te çalışır. Aynı kod her platformda koşar." Sayılar bu iki kimliği doğruluyor: Hono haftada 46,7 milyon npm indirmesi alıyor, Elysia 818 bin. Bu yazıda tip çıkarımını, validation mimarisini, benchmark metodolojisini ve migration maliyetini kaynaklarıyla açıp hangisini seçmen gerektiğini göstereceğiz.

Karşılaştırma Matrisi

Karşılaştırma Matrisi: Elysia / Hono
ÖzellikElysiaHono
Runtime kimliğiBun-öncelikli (çoklu runtime de var)Runtime-agnostic (Cloudflare/Deno/Bun/Node) (Öne çıkan)
Güncel kararlı sürüm1.4.30 (bakım modu)4.13.9 (aktif geliştirme) (Öne çıkan)
Yeni nesil sürüm durumu2.0.0-beta.19 (stabil değil)Yok — 4.x hattı sürüyor (Öne çıkan)
GitHub yıldızı19.18532.347 (Öne çıkan)
Haftalık npm indirme818.30646.774.908 (~57x) (Öne çıkan)
Validation mimarisiÇekirdekte (TypeBox + Standard Schema) (Öne çıkan)İnce çekirdek + 3rd-party (zValidator vb.)
OpenAPI üretimiBirinci parti (@elysia/openapi) (Öne çıkan)3rd-party middleware (Zod OpenAPI, Scalar)
Tip-güvenli RPC istemcisiEden TreatyHono Client (hc) — strict:true şart
Anasayfa throughput iddiası21x Express (TechEmpower R22, 2023)Ayrı doküman sayfası, vitrin iddiası yok
Startup-time (1000 route, Elysia kendi verisi)~29ms~23ms (Öne çıkan)
Bundle boyutu (minify)141KB (Elysia 2, AOT+minify)21KB (Öne çıkan)
Son 5 sürümde breaking-changeYok (patch seviyesi)Yok (patch seviyesi)
Resmi customer/case-study sayfasıYok (anasayfa logobandı)Yok
LisansMITMIT

Derinlemesine İnceleme

Elysia

Genel Bakış

Elysia, saltyAom'un Aralık 2022'de başlattığı, Bun için optimize edilmiş bir TypeScript web framework'ü. Merkezinde "tek kaynaktan doğruluk" fikri var: bir route tanımına yazdığın Elysia.t (TypeBox) şeması aynı anda runtime doğrulamayı, derleme-zamanı tip çıkarımını, @elysia/openapi ile OpenAPI dokümanını ve Eden Treaty ile client tipini üretiyor. Standard Schema desteğiyle Zod, Valibot, ArkType, Effect Schema, Yup ve Joi de aynı handler içinde kullanılabiliyor. Pazarlaması Bun-öncelikli olsa da dokümantasyonunda Node.js, Cloudflare Worker, Deno, Vercel ve Netlify için ayrı entegrasyon sayfaları var. Proje şu an mimari bir dönemeçte: 30 Temmuz 2026'da duyurulan Elysia 2 "complete rewrite" olarak tanımlanıyor ve hâlâ beta; 1.4.x dalı yalnızca güvenlik yaması alıyor, yeni özellik geliştirmesi 2.0'a kaydı.

Performans Metrikleri

Ekosistem

Paket yöneticisi
bun (birincil), npm/pnpm uyumlu
Geliştirme ortamı
VS Code + Bun/TypeScript extension
Popüler kütüphaneler
@elysia/eden (Eden Treaty)@elysia/openapi@elysia/cors@elysia/jwt
GitHub yıldızı
19,185

Üretimde Kullanım

  • Tiptap

    Convert Service

    Tiptap, Convert Service'ini Hono/Node'dan Elysia/Bun'a taşıdı ve 'significant performance improvement' bildirdi — rakip framework'ten doğrudan bir geçiş örneği.

Hono

Genel Bakış

Hono, Yusuke Wada ve katkıcılarının Aralık 2021'de başlattığı, runtime-agnostik bir TypeScript web framework'ü. Resmi anasayfası kimliğini tek cümlede özetliyor: "Cloudflare, Fastly, Deno, Bun, AWS ya da Node.js'te çalışır. Aynı kod her platformda koşar." Çekirdeği bilinçli olarak ince: dokümantasyon "Hono provides only a very thin Validator" diyor ve doğrulamayı zValidator gibi üçüncü parti middleware'lere bırakıyor; OpenAPI üretimi de resmi dokümanda "3rd-party Middleware" kategorisinde listeleniyor. Karşılığında hono/tiny preset'i 14KB'ın altında kalıyor. Tip-güvenli RPC tarafında Hono Client (hc), typeof route'tan türeyen AppType generic'iyle validator girdisini ve c.json() çıktısını infer ediyor. Sürüm disiplini olgun: 4.x hattı iki yılı aşkındır sürüyor, haftalık 46,7 milyon npm indirmesi alıyor.

Performans Metrikleri

Ekosistem

Paket yöneticisi
npm/pnpm/bun uyumlu (runtime-agnostic)
Geliştirme ortamı
VS Code + TypeScript extension
Popüler kütüphaneler
hono/client (hc)@hono/zod-validator@hono/zod-openapi@hono/node-server
GitHub yıldızı
32,347

Teknik Analiz

Uçtan Uca Tip Çıkarımı: Eden Treaty ile Hono Client

İki framework de sunucudan client'a otomatik tip paylaşımı vaat ediyor, ama uygulamaları farklı. Elysia'da Eden Treaty, tüm Elysia instance'ının route tipini treaty() fonksiyonuyla fetch-benzeri bir proxy nesnesine çeviriyor — api.users({ id: "1" }).get() gibi zincirlenebilir bir syntax alıyorsun; resmi dokümantasyonda WebSocket ve unit-test entegrasyonu ayrı sayfalarla anlatılıyor. Bu, Elysia'nın "tek kaynaktan doğruluk" felsefesinin doğal uzantısı: route tanımı hem sunucu davranışını hem client tipini hem de OpenAPI şemasını aynı anda üretiyor. Hono'da eşdeğeri Hono Client (hc). typeof route'tan türeyen bir AppType generic'i alıyorsun, hc<AppType>() bunu validator input'unu ve c.json() çıktısını infer eden tipli bir client'a çeviriyor. Fark burada: Hono'nun resmi dokümantasyonu net bir ön koşul taşıyor — monorepo'da tiplerin doğru çalışması için hem client hem server tsconfig.json'da strict: true şart. Kurulumda gözden kaçan, belgelenmiş bir kırılganlık noktası. Senin için pratik sonuç: Hono Client'ı kurarken monorepo'nda strict modu açık değilse ilk iş bunu düzeltmek olmalı — aksi halde tip çıkarımı sessizce bozulur ve neden bozulduğunu anlaman zaman alır.

Runtime Bağımsızlığı: Kimlik Farkı, Teknik Gerçek

Hono'nun ana sayfası bu konuda dolambaçsız: "Works on Cloudflare, Fastly, Deno, Bun, AWS, or Node.js. The same code runs on all platforms." Runtime-agnostiklik, Hono'nun pazarlamasının değil, kimliğinin merkezinde. Elysia'nın hikâyesi farklı kurulmuş. Ana sayfa mesajı Bun'ın performans avantajı üzerine kurulu. Ama teknik gerçek göründüğünden daha esnek: proje dokümantasyonunun entegrasyon bölümünde Node.js, Cloudflare Worker, Deno, Vercel, Netlify, Expo, Astro, Next.js, Nuxt, SvelteKit ve TanStack Start için ayrı sayfalar var. Yani Elysia de fiilen çoklu runtime'da çalışıyor — sadece bunu öne çıkarmıyor. Senin kararın için fark şurada: eğer projen "bugün Bun'da, yarın belki Cloudflare Workers'a taşınır" gibi bir belirsizlik taşıyorsa, Hono'nun kimliği bu senaryoyu doğrudan hedefliyor ve migration riskini azaltıyor. Eğer projen kesin olarak Bun'da kalacaksa ve Bun'ın performans özelliklerinden (native HTTP/2, hızlı Buffer I/O gibi Bun 1.4.1'in getirdiği iyileştirmeler) doğrudan faydalanmak istiyorsan, Elysia'nın Bun-öncelikli tasarımı seninle aynı dili konuşuyor demektir.

Benchmark Metodolojisi: "21x" İddiasının Küçük Dipnotu

Elysia'nın anasayfasında gördüğün büyük rakamlar — Express'e göre 21 kat, Fastify'a göre 6 kat, saniyede 2.454.631 istek — küçük puntoyla şu kaynağı gösteriyor: "Result from TechEmpower Benchmark Round 22 (2023-10-17) in PlainText." İki şeye dikkat etmelisin. Birincisi, veri üç yıllık; Bun o tarihten sonra 1.4 (Rust çekirdeği), 1.4.1 (native HTTP/2) ve 5 Eylül 2026'daki 1.4.2 ile yol aldı. İkincisi, "PlainText" TechEmpower'ın gerçek dünya JSON+veritabanı yükünü en az temsil eden kategorisi. Hono benchmark iddiasını vitrine değil ayrı bir doküman sayfasına taşımış. Orada 12 route'luk bir router kaydı tanımlanıyor, Node ve Bun sonuçları ekran görüntüleriyle veriliyor, Cloudflare Workers ölçümü ise sayıyla: Hono 402.820 ops/sn, sunder 297.036, itty-router 212.598, worktop 197.345 (Apple MacBook Pro, M1 Pro, 32 GiB). Metodoloji ve donanım açıkça yazılı; tekrar edebilirsin. Elysia'nın kendi 2.0 duyurusu ise tabloyu dengeleyen veri sunuyor: 25 route'ta startup Hono 21 ms, Elysia 24 ms; 1.000 route'ta Hono 23 ms, Elysia 29 ms. Minify edilmiş bundle'da Hono 4.12.28 21 KB, Elysia 2.0.0-exp.60 141 KB. Bu rakamlar Elysia'nın kendi aleyhine yayımlandığı için güvenilirliği yüksek.

Validation Mimarisi: Merkeze Koymak mı, Dışarıda Bırakmak mı

Elysia'nın validation katmanı, Elysia.t, TypeBox tabanlı bir schema builder ve framework'ün mimari merkezinde duruyor — runtime doğrulama, derleme-zamanı tip çıkarımı ve OpenAPI şema üretimi aynı t.Object({...}) tanımından geliyor. Üstüne Standard Schema desteğiyle Zod, Valibot, ArkType, Effect Schema, Yup ve Joi'yi aynı handler içinde kullanabiliyorsun; mevcut bir Zod şeman varsa TypeBox'a geçmek zorunda değilsin. Hono ise tam tersi bir tercih yapmış — resmi dokümantasyon bunu saklamıyor: "Hono provides only a very thin Validator... powerful when combined with a third-party Validator." Doğrulama mantığı çekirdekte değil, zValidator gibi ayrı middleware paketlerinde yaşıyor. Bunun bir bedeli var: istek Content-Type header'ı taşımıyorsa validator hata fırlatmak yerine sessizce boş obje {} döner. Senin için anlamı şu: Elysia'da validation "batteries-included" — type-safety, runtime kontrol ve dokümantasyon aynı satırdan çıkıyor. Hono'da validation bilinçli olarak minimal tutulmuş; bu esneklik demek (istediğin validator'ı seç) ama aynı zamanda dikkat demek, özellikle content-type header'ını unutan bir client'ın sessizce boş veriyle devam etmesi gibi köşe durumlarında.

OpenAPI ve Dokümantasyon Otomasyonu

Elysia'da OpenAPI üretimi birinci parti: resmi @elysia/openapi paketi, route tanımlarından otomatik şema çıkarıyor, /openapi route'unda Scalar UI hazır geliyor, üstüne fromTypes() ile mevcut TypeScript tiplerinden bile şema üretebiliyorsun. Bu, bir önceki bölümdeki "Single Source of Truth" felsefesinin devamı — aynı route tanımı hem çalışıyor hem doğrulanıyor hem de dokümante ediliyor. Hono'da durum farklı konumlanmış: resmi dokümantasyon OpenAPI'yi "3rd-party Middleware" kategorisinde listeliyor — Zod OpenAPI, Hono OpenAPI, Swagger UI, Scalar, Hono Docs Generator, hepsi ekosistem paketleri, çekirdeğin parçası değil. Pratikte bu, Hono yerine OpenAPIHono kullanmanı, her route'u createRoute() ile Zod şemasıyla elle tanımlamanı ve app.doc('/doc', {...}) ile dokümanı ayrıca kaydetmeni gerektiriyor — Elysia'daki gibi "route'u yaz, şema otomatik gelsin" değil. Eğer ekibinde API dokümantasyonunun otomatik ve route tanımından ayrılmaz olması öncelikliyse, Elysia burada net bir birinci-parti avantaj sunuyor. Hono'da aynı sonucu elde edebilirsin ama bunun için bilinçli, ek bir kurulum adımı gerekiyor — framework seni buna zorlamıyor, kendi seçmen gerekiyor.

Plugin Ekosistemi ve Semver Olgunluğu: 2 Beta ile 4.x Stable Arasında

npm dist-tag'leri bu bölümün özetini tek satırda veriyor: Elysia latest: 1.4.30, next: 2.0.0-beta.19. Elysia 2 hâlâ beta — resmi blog "It's not a stable release yet" diyor ve 1.4.x dalı artık yalnızca güvenlik yaması alıyor, yeni özellik geliştirmesi durduruldu. Bu, şu anda Elysia ekosisteminde bir plugin yazıyorsan ya da mevcut bir plugin'e bağımlıysan, o plugin'in 1.4 mü yoksa 2.0-beta'ya mı hedeflendiğine dikkat etmen gerektiği anlamına geliyor — proje aktif bir mimari geçişin ortasında. Hono latest: 4.13.9 — 4.x hattı iki yılı aşkın süredir sürüyor. Hono'nun son beş release'inde (v4.13.5-v4.13.9) tek bir "breaking" başlığı yok, hepsi jsx/accepts/router/aws-lambda gibi noktalarda küçük "fix" PR'ları. Bu, semver disiplininin somut kanıtı: Hono'da minor/patch sürüm yükseltmesi genelde sürpriz getirmiyor. Kararın için: eğer bugün üretime bir şey koyacaksan ve "framework'ün altını değiştirmeyeceğinden emin olmak" öncelikliyse, Hono'nun 4.x istikrarı seni daha az riske sokar. Elysia'yı seçiyorsan ya bilinçli olarak 1.4.x'in bakım moduna razı olman (yeni özellik beklemeden) ya da 2.0 beta'nın olgunlaşmasını bir miktar riskle kabul etmen gerekiyor.

Breaking-Change Geçmişi ve Bilinen Üretim Referansları

Elysia 2, resmi blog yazısında "complete rewrite" olarak tanımlanıyor ve resmi bir otomatik migration aracı sunuluyor: bunx @elysia/codemod@latest. 1.4.30 release notu da geliştirme çabasının tamamen 2.0'a kaydığını doğruluyor — 1.4'te kalan projeler yalnızca güvenlik yaması alacak. Üretim referansları tarafında Elysia'nın elinde isimlendirilmiş örnekler var: cs.money, Tiptap (özellikle çarpıcı — Convert Service'ini Hono/Node'dan Elysia/Bun'a taşımışlar ve "significant performance improvement" diyorlar, yani doğrudan rakip framework'ten bir geçiş örneği), BAAC Thailand, Abacatepay, ConnexTickets, Decidable. Dürüstlük notu: bunlar resmi bir "customers" sayfasında değil, anasayfa logobandında duruyor — vaka çalışması formatında değil ama isimlendirilmiş. Hono'nun yayımlanmış ayrı bir customer/case-study sayfası yok. Üretim kullanımının kanıtı daha dolaylı ama güçlü: haftalık 46,7 milyon npm indirmesi ve Cloudflare Workers ekosistemindeki konumu. Elysia'nın "State of JavaScript 2025'te 9. en çok kullanılan JS backend framework'ü" iddiası ise yalnızca kendi blog yazısında geçiyor; üçüncü parti bir doğrulaması yayımlanmış değil — bu yüzden kaynağıyla birlikte anılmalı.

Hangi Senaryoda Hangisi

Yalnızca Bun'da çalışacak, greenfield bir API yazıyorsun ve en agresif tip çıkarımını istiyorsun

Öneri: Elysia (1.4.x kararlı dalda başla, 2.0'ı staging'de izle)

Elysia.t'nin TypeBox tabanlı tek-kaynak validation'ı + Eden Treaty, Bun'a özel DX'te Hono'nun ince çekirdeğinden daha az ek kurulum gerektiriyor.

Cloudflare Workers'a deploy edeceksin ya da runtime'ı sonradan değiştirme ihtimalin var

Öneri: Hono

Hono'nun kimliği runtime-agnostic; aynı kod Cloudflare, Fastly, Deno, Bun, AWS, Node'da çalışır — Elysia'nın pazarlaması Bun-öncelikli.

Bugün üretime koyacaksın, breaking-change riskine toleransın düşük

Öneri: Hono 4.x

4.x hattı 2+ yıldır stabil, son 5 release'de tek bir breaking-change başlığı yok; Elysia şu anda 1.4→2.0 mimari geçişinin ortasında.

Ekibinde mevcut bir Zod şeman var ve minimal, esnek bir çekirdek istiyorsun

Öneri: Hono + zValidator

Hono validation'ı bilinçli olarak framework dışına koymuş; mevcut Zod yatırımını değiştirmeden entegre edebilirsin.

Route tanımından otomatik OpenAPI + Scalar UI istiyorsun, ek kurulum yapmak istemiyorsun

Öneri: Elysia

@elysia/openapi birinci parti ve route tanımından otomatik üretiyor; Hono'da aynı sonuç için OpenAPIHono + createRoute() ile elle kurulum gerekiyor.

Cold-start süresi ve edge bundle boyutu senin için kritik darboğaz

Öneri: Hono

Elysia'nın kendi 2.0 verisinde bile Hono startup-time'da (1000 route: 23ms vs 29ms) ve bundle boyutunda (21KB vs 141KB) önde.

Küçük, hevesli bir ekip; niş framework'e yatırım yapmaya ve 2.0'ın olgunlaşmasını beklemeye hazırsın

Öneri: Elysia 2 beta (elysia@next)

Resmi codemod aracı (bunx @elysia/codemod@latest) geçişi kolaylaştırıyor; erken benimseyici olmak, 2.0 stabil olduğunda hazır olmak demek.

Yaygın Tuzaklar

  • Hono'da Content-Type header'sız istek atmak — validator hata fırlatmak yerine sessizce boş obje {} döner

    Hono

    Çözüm

    İstemci tarafında Content-Type: application/json header'ının her zaman gönderildiğini test et; validator middleware'ini header eksikken de ayrı bir testle doğrula.

  • Hono'da Rails tarzı ayrı 'Controller' fonksiyonları yazmak — path param tip çıkarımı kırılır

    Hono

    Çözüm

    Resmi best-practice: factory.createHandlers() kullan ya da handler'ı route tanımının hemen yanında tut.

  • Elysia'da t.Optional(t.UnionEnum(...)) kullanıp gerçekten boş/undefined değer beklemek — bilinen açık bug, ilk enum değeri varsayılan set ediliyor

    Elysia

    Çözüm

    Bu senaryoda t.Optional(t.UnionEnum(...)) yerine ayrı bir default-değersiz alternatif şema dene ve GitHub issue #1332'yi takip et.

  • Elysia 1.4.x'e yeni özellik/feature PR'ı beklemek

    Elysia

    Çözüm

    1.4 dalı resmi olarak yalnızca güvenlik yaması alıyor; yeni özellik ihtiyacın varsa elysia@next (2.0 beta) yol haritasını izle, 1.4'e PR açma.

  • Hono RPC (hc client) monorepo'da 'çalışmıyor' sanmak

    Hono

    Çözüm

    Tip çıkarımı için hem client hem server tsconfig.json'da "strict": true olmalı — bu olmadan inference sessizce bozulur.

Geçiş Kılavuzu

Elysia 1.4.x'ten Elysia 2 (beta)'ya geçiş

Tahmini süre: Küçük-orta bir API için 1-3 gün (codemod otomatik kısmı hızlı, asıl zaman validation/OpenAPI entegrasyon testinde geçiyor); resmi stabil sürüm çıkana kadar üretimde 1.4.x'te kalmak daha düşük riskli
  1. 11.4.x'te GHSA güvenlik yamalarını takip et (1.4 dalı yalnızca güvenlik yaması alıyor, yeni özellik gelmiyor)
  2. 2elysia@next paketini ayrı bir branch/ortamda kur: bun add elysia@next
  3. 3Resmi otomatik codemod'u çalıştır: bunx @elysia/codemod@latest
  4. 4Elysia.t (TypeBox) şemalarını 2.0'ın güncellenmiş validation API'siyle karşılaştır, breaking noktaları blog yazısındaki 'Breaking Change' bölümünden kontrol et
  5. 5Eden Treaty client kodunu yeniden derle ve tip hatalarını gider
  6. 6Bundle-size'ı doğrula: None-schema senaryosunda Elysia 1'in 736KB'si Elysia 2'de 344KB'ye, AOT build plugin'iyle 226KB'ye (minify edilirse 141KB) iniyor
  7. 7Staging'de TechEmpower değil, kendi trafiğinle yük testi yap
  8. 81.4.x'e geri dönüş planını (rollback) hazır tut — 2.0 hâlâ resmi olarak stabil değil

Gelecek Öngörüsü

Elysia

Elysia'nın öncelikli yol haritası Elysia 2'yi stabil sürüme taşımak — resmi blog 'complete rewrite' diyor ve bundle-size'ı (None-schema 736KB→344KB, AOT ile 226KB) küçültmeyi önceliklendirdiklerini gösteriyor. 1.4.x dalı ise yalnızca güvenlik yamasıyla sürdürülecek, resmi olarak yeni özellik almayacak. Duyurulmuş kesin bir stabil sürüm tarihi yok.

Hono

Hono, 4.x hattında iki yılı aşkındır breaking-change'siz bir kadansla ilerliyor; son sürümlerdeki değişiklikler jsx/router/aws-lambda gibi noktalarda küçük düzeltmeler. Projenin runtime-agnostic kimliği ve hono/tiny preset (14KB altı) önceliği korunuyor gibi görünüyor. Duyurulmuş bir '5.0' yol haritası ya da büyük mimari değişiklik planı yok.

Altın Bilgi

En değerli çıkarım vitrindeki rakamlarda değil, iki projenin kendi verisinin birbiriyle çelişmesinde saklı: Elysia'nın anasayfası throughput'ta Express'e göre 21 kat üstünlük ilan ederken, Elysia'nın kendi 2.0 duyurusu startup-time'da (1.000 route: Hono 23 ms, Elysia 29 ms) ve minify edilmiş bundle boyutunda (Hono 21 KB, Elysia 2 141 KB) Hono'yu önde gösteriyor. Yani "hangisi daha hızlı" sorusunun cevabı hangi metriği sorduğuna göre değişiyor. Karar vermeden önce projenin darboğazını netleştir — yüksek eşzamanlı istek mi, cold-start süresi mi, edge'de bundle boyutu mu; cevabın oraya göre değişir.

İlgili Blog Yazıları

Tüm Yazıları Gör

İlgili İçerik