PRODEgemen Avrupa BaaS platformuKontrol Panelini Aç →

Performans · 12 dk. okuma

Rust ve Node.js karşılaştırması: arka uç karşılaştırması ve gecikme

Affane Daylami · Fondateur · 5 Temmuz 2026

Bloga geri dön

Ağustos 2025'te güncellenen bağımsız bir topluluk tezgahında Rust çerçevelerinin tümü, 1,4 ila 1,7 ms gecikme süresiyle saniyede 18.000 ila 22.000 istek çalıştırıyor. Eşdeğer Node.js çerçeveleri aynı donanımda 3,4-5,5 ms'de 5.766 ile 9.340 istek/s arasında sınıra sahiptir (Sharkbench, 24 Ağustos 2025).

Bu İngilizce metin, Fransızca orijinalinden otomatik olarak oluşturulmuştur ve henüz incelenmemiştir.
Bu sayfa otomatik olarak çevrildi. İngilizce versiyonu yetkilidir.

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.
#
Tezgah

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).

Saniye başına istek sayısı, Rust ve Node.js karşılaştırmasıActix (Rust) 21.965 talep/s, Hyper (Rust) 21.781 talep/s, Axum (Rust) 21.030 talep/s, Rocket (Rust) 18.047 talep/s, Fastify (Node.js) 9.340 talep/s, Koa (Node.js) 8.828 talep/s, Ekspres (Node.js) 5.766 istek/sn. Kaynak: Sharkbench, 24 Ağustos 2025.05k10k15k20kActix (Pas)21 965Hiper (Pas)21 781Aksum (Pas)21 030Roket (Pas)18 047Hızlılaştır (Node.js)9 340Koa (Node.js)8 828Ekspres (Node.js)5 766

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

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.

Milisaniye cinsinden ortalama gecikme, Rust ve Node.js karşılaştırmasıActix (Pas) 1,4 ms, Hyper (Pas) 1,5 ms, Axum (Pas) 1,6 ms, Roket (Pas) 1,7 ms, Fastify (Node.js) 3,4 ms, Koa (Node.js) 3,6 ms, Express (Node.js) 5,5 ms. Kaynak: Sharkbench, 24 Ağustos 2025.0ms1 ms2 ms3 ms4ms5msActix (Pas)1,4msHiper (Pas)1,5msAksum (Pas)1,6msRoket (Pas)1,7 msHızlılaştır (Node.js)3,4 msKoa (Node.js)3,6 msEkspres (Node.js)5,5ms

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.

#
neden

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.

ownership.rsrust
fn main() {
    let data = String::from("réponse API"); // 'data' dizenin sahibidir
    process(data); // Sahiplik burayı terk ediyor
    // 'veri' artık burada geçerli değil - sarkan işaretçi yok, çift serbest yok
} // 'veri' burada deterministik olarak yayınlanır

fn process(s: String) {
    println!("{s}");
} // Burada kapsam dışına çıkıyoruz: çöp toplama geçişi olmadan hemen yayınlanma

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.

#
Nüans

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).

Axum ile karşılaştırıldığında JavaScript çalışma zamanına göre hızlı aktarım hızıRust'ta Aksum: 21.030 talep/sn. Bun'da Ekspres: 18.917 talep/sn. Deno'da Ekspres: 6.088 talep/sn. Node.js'de Express: 5.766 istek/sn. Her üç durumda da aynı Ekspres kodu. Kaynak: Sharkbench, 24 Ağustos 2025.05k10k15k20kAxum (Pas, referans)21 030Bun'da Ekspres18 917Deno'da Ekspres6 088Node.js'de Express5 766

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.

Peki tüm bunlara girecek misin?

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.

#
Metodoloji

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.

#
Aurabase

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.

#
Veri

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/lerGecikmeBellek
ActixPas21 9651,4ms16,6 MB
HiperPas21 7811,5ms8,6 MB
AksumPas21 0301,6ms8,5 MB
RoketPas18 0471,7 ms6,4 MB
HızlılaştırNode.js9 3403,4 ms57,0 MB
KoaNode.js8 8283,6 ms53,3 MB
EkspresNode.js5 7665,5ms82,5 MB
Eksprestopuz18 9171,3 ms53,3 MB
Ekspresdeno6 0885,0ms130,7 MB
CinGit3 5461,0ms16,7MB
HızlıHTTPGit5 5670,7 ms13,4 MB

Şu verileri alıntılayın: Sharkbench, "Web Framework Benchmarks", sharkbench.dev/web, en son 24 Ağustos 2025'te güncellendi.

#
SSS

Sık sorulan sorular

Bu, Node.js'nin kötü bir seçim olduğu anlamına mı geliyor?+
Hayır. Node.js birçok arka uç için sağlam bir seçim olmaya devam ediyor, özellikle de ekibin TypeScript konusunda uzman olduğu ve yükün CPU hesaplaması tarafından belirlenmediği durumlarda. Burada ölçülen boşluk, geliştirme verimliliğinde veya paket ekosisteminde değil, yüksek rekabet koşullarında ham verim ve gecikmededir. Bun'da Rust'la olan fark önemli ölçüde azaldı (Axum için 21.030'a kıyasla Express için 18.917 istek/sn): çalışma zamanı seçimi, dil seçimi kadar önemlidir.
Express neden diğer Node.js çerçeveleriyle karşılaştırıldığında bu kadar yavaş?+
Bu kıyaslamada Express (Node.js'de 5.766 istek/s), Koa (8.828) ve Fastify'ın (9.340) ardından test edilen Node.js çerçeveleri arasında en yavaş olanıdır. Ekspres'in tarihi 2010'dur ve tasarımı, ham verimden ziyade ara yazılımın basitliğini destekler. Aynı çalışma zamanında, çerçeve seçimi Express ve Fastify arasında zaten ×1,6'lık bir boşluk oluşturuyor (Sharkbench, 24 Ağustos 2025).
Bu kritere nasıl ulaşıldı ve bunu yeniden üretebilir miyiz?+
Bu makalede adı geçen tezgah, Docker/Linux altında eşzamanlı HTTP isteklerini, I/O'yu ve JSON serileştirmesini Ryzen 7 7800X3D üzerinde 24 Ağustos 2025'te (sharkbench.dev/web) son genel güncellemeyle test eden bağımsız bir topluluk projesi olan Sharkbench'ten geliyor. Bu bir Aurabase bench değil; bunu kendimiz ne yürüttük ne de onayladık; Pek çok pazarlama figüründen farklı olarak metodolojisi ve materyalleri yayınlandığı için ondan alıntı yapıyoruz.
Aurabase kendi kriterlerini yayınladı mı?+
Hayır, bugüne kadar değil. Aurabase'in Rust/axum/tokio çekirdeği monorepo kaynak kodunda doğrulandı, ancak Aurabase'e özgü hiçbir üretim veya gecikme rakamı ölçülmedi ve yayınlanmadı. Bu makale, üçüncü taraf kaynaklı tezgahlara dayanarak genel olarak Rust ve Node.js'yi karşılaştırmaktadır; bu, Aurabase'in bir rakiple karşılaştırılması değildir.
Verim ve bellekteki fark, altyapı faturasında ne gibi bir fark yaratır?+
Adı geçen bankta Axum, Node.js'deki Express için 82,5 MB'a kıyasla 8,5 MB bellek tüketiyor; bu, ×10'a yakın bir faktör (Sharkbench, 24 Ağustos 2025). Örnek başına daha az bellek ve CPU çekirdeği başına daha fazla isteğin işlenmesi, eşit trafik için aynı yükün daha az veya daha küçük örneklerle tutulmasını mümkün kılar. Ancak asıl etki, yük profilinize (G/Ç bağlantılı veya CPU bağlantılı) ve bulut sağlayıcınıza bağlıdır; bu rakam, otomatik bir tasarruf vaadi değildir.
#
Sonuç

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.

DAĞITILMAYA HAZIR MISINIZ?

Beş dakika içinde arka ucunuz.

Kredi kartı gerekmez · 500 MB ücretsiz · 50.000 MAU