Bu kürsüyü kendimiz yönetmedik: bunlar üçüncü taraf rakamlar, halka açık, kaynaklı ve tarihli. Bu makale, Aurabase'in bir rakiple karşılaştırılması değil, ne söylediklerini, arkasındaki metodolojiyi ve arka uç seçiminde gerçekte neleri değiştirdiğini ayrıntılarıyla anlatıyor.
Aurabase'in çekirdeği Rust'ta axum ve tokio üzerinde çalışır; monorepo'nun Cargo.toml'sinde doğrulanır, on hizmet aynı bağımlılığı paylaşır. Ancak bugüne kadar kendi performans rakamlarımızı yayınlamadık. Kesin bir Aurabase gecikmesi arıyorsanız, henüz mevcut değil: metodoloji sayıdan önce gelecektir, tam tersi değil.
Temeller
- Sharkbench'te (topluluk tezgahı, Ryzen 7 7800X3D, Docker/Linux, 24.08.2025): Actix, Hyper, Axum ve Rocket'in tümü 1,4-1,7 ms'de 18.047 ile 21.965 talep/s arasında çalışıyor. Fastify, Koa ve Express sınırı Node.js tarafında 3,4-5,5 ms'de 5.766 ile 9.340 istek/s arasında.
- Çalışma zamanı, dil kadar ağırdır: aynı Ekspres kodu, Node.js'de 5.766 istek/sn'den Bun'da 18.917 istek/sn'ye çıkar - bir satır değiştirmeden ×3,3 faktörü.
- Bellek boşluğu en belirgin olanıdır: Axum için 8,5 MB, Express/Node.js için 82,5 MB; Rust'un çöp toplayıcısının yokluğuyla tutarlıdır.
- Aurabase bugüne kadar kendisine ait herhangi bir kıyaslama yayınlamadı. Rust/axum/tokio çekirdeği performansla değil kodla kontrol edilir.
- Yalıtılmış bir rakam hiçbir şeyi kanıtlamaz: donanım, çerçeve sürümü, yük boyutu ve rekabet düzeyi, sıralamayı tek başına dilden daha fazla değiştirir.
Son zamanlardaki bir üçüncü taraf bankasının gösterdiği şey
Sharkbench, üç şeyi ölçen bağımsız bir topluluk projesidir: bir çerçevenin eşzamanlı HTTP isteklerini işleme yeteneği, G/Ç işlemleri ve JSON serileştirmesi. Test, Docker/Linux altında Ryzen 7 7800X3D üzerinde gerçekleştirilir ve son genel güncelleme 24 Ağustos 2025'te yapılır (sharkbench.dev/web, erişim tarihi 24 Ağustos 2026).
Kaynak: Sharkbench, 24 Ağustos 2025 — Docker/Linux, Ryzen 7 7800X3D.
Aurabase'in Rust çekirdeği için kullandığı ve Cargo.toml ile doğrulanan çerçeve olan Axum, bu tezgahta saniyede 21.030 isteği işliyor. Üretimde en çok kullanılan Node.js çerçevesi olan Express, aynı donanım üzerinde 5.766 işlem gerçekleştirir: 3,6 faktörü. Bu münferit bir durum değil. Test edilen dört Rust çerçevesinin tamamı 18.000 ile 22.000 istek/sn gibi dar bir aralıkta yer alırken, test edilen üç Node.js çerçevesinin üst sınırı 5.766 ile 9.340 arasındadır.
Uygulamada "req/s", trafiğin az olduğu bir sitedeki yalıtılmış bir isteğin hızını değil, sürekli eşzamanlı yük altındaki verimi ölçer. Birkaç saniyede bir çağrılan uç nokta için fark hiçbir zaman görülmez. Eşit donanım için CPU çekirdeği başına işlenen istek sayısının doğrudan altyapı faturasını belirlediği, gerçek zamanlı bir akış, yoğun trafiğe sahip genel bir API, binlerce çağrıyı bir araya getiren bir iş gibi sıcak bir uç noktada belirleyici hale gelir.
Gecikme aynı modeli izler
Ortalama gecikme bu tezgahta aynı hiyerarşiyi takip ediyor: test edilen Rust çerçeveleri için 1,4 ila 1,7 ms, test edilen Node.js çerçeveleri için 3,4 ila 5,5 ms.
Kaynak: Sharkbench, 24 Ağustos 2025 — orta gecikme, p99 değil.
Bu rakam p99 değil, ortalamadır. Yönetilen bir çalışma zamanındaki çöp duraklatmaları çoğunlukla gönderme kuyruğunu etkiler; yani en yavaş istekler, ortalamayı değil. Bu, bu serideki özel bir makalenin konusudur: çöp toplayıcının yokluğu neden p99 gecikmesini değiştirir.
Rust'un neden ödeme yapması gereken bir GC molası yok?
Rust, belleği sahipliğe göre yönetir, derleme sırasında kontrol edilir; arka planda çalışan ve yürütmeyi kesintiye uğratan çöp toplayıcı yoktur. Resmi Rust Book bunu şu şekilde özetlemektedir: “Sahip olma özelliklerinin hiçbiri programınızı çalışırken yavaşlatmaz” (The Rust Programming Language, doc.rust-lang.org, 24 Ağustos 2026'da erişildi). Bellek, kendisine ait olan değişken kapsam dışına çıktığı anda serbest bırakılır; çalışma zamanında öngörülemeyen bir duraklama değil, derleme zamanında bilinen bir zaman.
Buna karşılık Node.js, tek bir JavaScript iş parçacığı üzerinde çalışır ve çok aşamalı bir olay döngüsü (zamanlayıcılar, ertelenmiş geri aramalar, yoklama, kontrol...) aracılığıyla G/Ç işlemlerini çekirdeğe devreder - ancak V8 motorundan çöp toplama geçişi de dahil olmak üzere bu iş parçacığı üzerindeki herhangi bir eşzamanlı hesaplama, çalışırken yürütmeyi engeller (resmi Node.js belgeleri, nodejs.org, erişim tarihi: 24 Ağustos 2026). Bu bir bellek modeli farkıdır, bir uygulama detayı değil.
Gerçek sürpriz: Çalışma zamanı dil kadar ağırdır
Aynı tezgahtan elde edilen en mantık dışı sonuç Rust'u ilgilendirmiyor; Node.js'nin kendisini ilgilendiriyor. Express — tek ve aynı kod, tek ve aynı API — uygulama kodu satırını değiştirmeden Node.js'de 5.766 istek/sn'den Bun'da 18.917 istek/sn'ye (×3,3 faktörü) çıkar (Sharkbench, 24 Ağustos 2025).
Kaynak: Sharkbench, 24 Ağustos 2025 — aynı Express kodu, üç JavaScript çalışma zamanı.
Deno'da aynı Ekspres kodu 6.088 istek/s ile sınırlıdır; Bun'dan uzak, Node.js'ye yakın. JavaScript dili her üç durumda da aynıdır; Oyunu değiştiren şey çalışma zamanıdır (JS motoru, olay döngüsü uygulaması, çöp toplama). Çalışma zamanını, sürümünü ve çerçevesini belirtmeden "Rust"u "Node.js" ile karşılaştırmak, dilleri değil, yapılandırmaları karşılaştırmaya benzer.
Aynı bankta, FastHTTP (hala Go'da) yalnızca 0,7 ms gecikmeyle 5.567 istek/s'ye çıktığında Go Gin çerçevesi 3.546 istek/s ile zirveye çıkıyor (Sharkbench, 24 Ağustos 2025). Tek bir dil için çok farklı iki sonuç: Yalıtılmış bir rakam hiçbir zaman ekosistemin tamamını özetlemez.
Neden tek bir kıyaslama numarası asla yeterli olmuyor?
TechEmpower Çerçeve Karşılaştırmaları aynı fikri daha büyük ölçekte göstermektedir. Açık kaynak deposu 24 Mart 2026'da güncellendi ve en son turu (23. tur) 16 Mart 2026 tarihli bir gönderiye konu oldu (TechEmpower, 24 Ağustos 2026'da erişildi). Bu proje, yüzlerce uygulamada pek çok türde test çalıştırıyor; çünkü tek bir test, bırakın dili, hiçbir zaman bir çerçeveyi temsil etmiyor.
Veritabanı pazarındaki bir oyuncu olan Convex, konuyla ilgili en net pozisyonu formüle etti: yanıltıcı olduğu düşünülen rakip veritabanları arasındaki pazarlama "çubuk grafik savaşına" katılmayı reddetmek. "Bu ölçeklendirme tiyatrosu, ölçeklendirme değil", ekip yazıyor (Convex, 24 Ağustos 2026'da erişildi). Şu yorumu paylaşıyoruz: Yayınlanmış bir metodoloji olmaksızın çıplak bir rakam, ne rakip ne de bizim için hiçbir şeyi kanıtlamaz.
What it changes in concrete terms: hardware (CPU, RAM), exact version of the framework and runtime, size of the JSON payload, level of competition and duration of the test all vary the ranking — sometimes more than the choice of language itself. A bench that does not publish these parameters does not reproduce, therefore does not verify itself — see our complete and reproducible methodology for benchmarking abackend.
Peki tüm bunların içinde Aurabase mi var?
Aurabase'in çekirdek arka ucu Rust'ta axum ve tokio üzerinde yazılmıştır — monorepo'nun Cargo.toml'sinde kontrol edilmiştir: on hizmet (aura-gateway, aura-auth, aura-db…) aynı çalışma alanı bağımlılığını axum (0.8) ve aynı çalışma zamanını tokiopaylaşır , 2021 baskısında. Veri düzlemi ve yönetim düzlemi trafiğini yönlendiren ağ geçidi, axum'a ek olarak hyper'ye dayanır — tüm ayrıntılar, ağ geçidinin veri düzlemi / yönetim düzlemi mimarisihakkındaki makalemizdedir. Bu on hizmeti destekleyen Cargo çalışma alanının yapısı Cargo çalışma alanıhakkındaki makalemizde belgelenmiştir.
Henüz elimizde olmayan şey, belgelenmiş metodoloji ve donanıma sahip, yayınlanmış bir Aurabase verimi veya gecikme rakamıdır. Bu kasıtlıdır: Metodolojiyi tam tersi yerine şekilden önce yayınlamayı tercih ediyoruz - bu, bu serinin gelecekteki bir makalesinin konusudur.
Tam mimari karşılaştırması için (Aurabase'deki birleştirilmiş Rust çekirdeği ile doğrudan rakipte belgelenen heterojen yığın Elixir/Go/TypeScript/Node) ayrıntılı karşılaştırmamız için Aurabase ve Supabase. Zaten bir projeyi taşıyorsanız, Supabase'den Aurabase'e geçiş kılavuzu şemayı, RLS politikalarını ve SDK'yı kapsar.
Ek: tam veri tablosu
Bu makalede alıntılanan tüm satırlar, Sharkbench tarafından 24 Ağustos 2025'te yayınlanmıştır (Docker/Linux, Ryzen 7 7800X3D).
| Çerçeve | Çalışma zamanı | İstek/ler | Gecikme | Bellek |
|---|---|---|---|---|
| Actix | Pas | 21 965 | 1,4ms | 16,6 MB |
| Hiper | Pas | 21 781 | 1,5ms | 8,6 MB |
| Aksum | Pas | 21 030 | 1,6ms | 8,5 MB |
| Roket | Pas | 18 047 | 1,7 ms | 6,4 MB |
| Hızlılaştır | Node.js | 9 340 | 3,4 ms | 57,0 MB |
| Koa | Node.js | 8 828 | 3,6 ms | 53,3 MB |
| Ekspres | Node.js | 5 766 | 5,5ms | 82,5 MB |
| Ekspres | topuz | 18 917 | 1,3 ms | 53,3 MB |
| Ekspres | deno | 6 088 | 5,0ms | 130,7 MB |
| Cin | Git | 3 546 | 1,0ms | 16,7MB |
| HızlıHTTP | Git | 5 567 | 0,7 ms | 13,4 MB |
Şu verileri alıntılayın: Sharkbench, "Web Framework Benchmarks", sharkbench.dev/web, en son 24 Ağustos 2025'te güncellendi.
Sık sorulan sorular
Hatırlanması gerekenler
Burada belirtilen kıyaslamada, Rust çerçevelerinin tümü dar bir aralıkta (18.000 ila 22.000 istek/s, 1,4-1,7 ms) çalışır ve Node.js'nin kendisindeki Node.js çerçevelerinin (5.766-9.340 istek/s, 3.4-5.5 ms) çok ilerisinde çalışır. Ancak çalışma zamanı, dil kadar durumu da değiştiriyor: Bun'daki Express, Rust'taki Axum'u neredeyse yakalıyor.
Bir arka ucu yalnızca ham performansa göre değerlendirirseniz sayıdan önce metodolojiye ihtiyaç duyun: donanım, sürüm, yük boyutu, rekabet düzeyi. Aurabase henüz kendi rakamlarını yayınlamadı; bunu başardığımızda metodoloji ilk sırada gelecektir.