Přejít k navigační liště

Zdroják » JavaScript » Bun v benchmarku mikroservisních frameworků: JavaScript na úrovni Rustu?

Bun v benchmarku mikroservisních frameworků: JavaScript na úrovni Rustu?

JavaScript se v backendu dlouho bral jako kompromis mezi výkonem a pohodlím vývoje. Nové benchmarky ale ukazují, že se tahle rovnice může rychle měnit. Runtime Bun se v testech mikroservisních frameworků výkonově dotáhl na špičkové Rust frameworky a výrazně překonal klasický Node.js s Expressem. Co za tím stojí a znamená to konec pomalého JavaScriptu na serveru?

Výkon mikroservisních backendů je dlouhodobě doménou jazyků jako Rust, Go nebo C++. JavaScript byl v této oblasti často považován za kompromis mezi výkonem a vývojářskou produktivitou. To se ale může rychle měnit. Nejnovější benchmarky, které zveřejnil Özkan Pakdil, totiž ukazují, že Bun se výkonově zařadil po bok nejrychlejších serverových frameworků současnosti.

Co je Bun a proč se o něj zajímat

Bun je „relativně nový“ JavaScript runtime, který si klade za cíl nahradit nebo alespoň doplnit Node.js, Deno a další nástroje v ekosystému JavaScriptu. Na rozdíl od Node.js není postavený na V8, ale na JavaScriptCore (engine ze Safari), a celý runtime je napsaný v jazyce Zig.

Zásadní je, že Bun není jen runtime:

  • obsahuje HTTP server
  • má vlastní package manager
  • zvládá TypeScript nativně
  • obsahuje bundler i test runner

Cílem Bun není jen výkon, ale i odstranění fragmentace nástrojů, která je v JS světě dlouhodobým problémem.

Jaký benchmark byl použit a co vlastně měří

Benchmark, do kterého byl Bun přidán, se dlouhodobě zaměřuje na jednoduché mikroservisy, nikoliv na komplexní aplikační logiku. Testovaný scénář je záměrně minimalistický:

const port = 8080;

const server = Bun.serve({
    port: port,
    fetch(req) {
        const url = new URL(req.url);
        
        if (url.pathname === "/hello") {
            const info = {
                name: "bun",
                releaseYear: new Date().getFullYear()
            };
            return new Response(JSON.stringify(info), {
                headers: { "Content-Type": "application/json" }
            });
        }
        
        return new Response("Not Found", { status: 404 });
    }
});

console.log(`Bun server started on port ${server.port}`);Code language: JavaScript (javascript)

Testují se především tyto metriky:

  • průměrná doba odezvy
  • maximální doba odezvy
  • počet requestů za sekundu (RPS)
  • počet selhaných requestů

To znamená, že nejde o „reálnou aplikaci“, ale o syntetický test výkonového stropu dané technologie.

Implementace HTTP serveru v Bunu

Autor benchmarku použil Bun 1.3.5 a jeho vestavěné API Bun.serve. Nejde tedy o framework typu Express, Fastify nebo Hono, ale o přímou práci s runtime.

Ukázkový kód serveru je velmi stručný a názorně ukazuje filozofii Bun:

  • žádné middleware
  • žádné abstrakce navíc
  • přímá práce s requestem a response

To je důležité, protože právě minimální vrstvy abstrakce mají zásadní vliv na výsledný výkon.

Výsledky: Bun překvapivě vysoko

Výsledky Bun serveru v benchmarku vypadají následovně:

  • průměrná odezva: 157 ms
  • maximální odezva: 569 ms
  • requestů za sekundu: 6 400
  • selhání: 0

Na první pohled už je jasné, že nejde jen o „rychlejší Node.js“. Bun se výkonově zařadil mezi absolutní špičku.

Přímé srovnání s Rust frameworky

Nejzajímavější je srovnání s Rustem, který je dnes považován za zlatý standard výkonu v backendu:

TechnologiePrůměrná odezvaRPS
Rust (Warp)144 ms6 400
Rust (Actix)154 ms6 400
Rust (Axum)154 ms6 400
Bun157 ms6 400

Rozdíly v řádu jednotek milisekund jsou v praxi zanedbatelné a snadno je může ovlivnit konkrétní konfigurace, kernel nebo síťová latence.

Bun vs Node.js: propastný rozdíl

Ještě výraznější je rozdíl oproti klasickému Node.js s Express.js:

MetrikaBunNode.js + Express
Průměrná odezva157 ms815 ms
RPS6 400667
Selhané requesty0~24 000

Tohle srovnání ukazuje dvě věci:

  1. Express.js je dnes výkonově velmi zastaralý
  2. Node.js má výrazně vyšší runtime overhead

Pro projekty, které stále staví nové mikroservisy na Expressu, je to jasný signál k zamyšlení.

Proč je Bun tak rychlý

Autor benchmarku i komunita se shodují na několika klíčových faktorech:

1. JavaScriptCore místo V8

JavaScriptCore má v některých typech workloadů nižší latenci a menší paměťovou režii.

2. Implementace v jazyce Zig

Zig umožňuje velmi přesnou kontrolu nad pamětí a systémovými voláními.

3. Vestavěný HTTP server

Žádný framework = žádný zbytečný overhead.

4. Optimalizovaný I/O

Bun využívá io_uring na Linuxu, což výrazně snižuje režii síťových operací.

5. TypeScript bez transpilační vrstvy

Odpadá runtime penalizace spojená s build procesem.

Nové rozdělení výkonových „tierů“

Po přidání Bun autor benchmarků aktualizoval výkonnostní kategorie:

  • Tier 1 (< 200 ms): Rust frameworky, Bun
  • Tier 2 (200–300 ms): Go, .NET AOT
  • Tier 3 (300–600 ms): JVM v nativním režimu
  • Tier 4 (> 600 ms): klasické JVM frameworky, Node.js + Express

Zařazení Bun do Tier 1 je z hlediska JavaScriptového ekosystému historický moment.

Co z toho plyne pro praxi

Je důležité říct, že benchmark není automatický důkaz, že by měl každý přepsat backend do Bunu. Neřeší například ekosystém knihoven, observabilitu, dlouhodobou stabilitu nebo chování při komplexní logice.

Na druhou stranu ale jasně ukazuje, že JavaScript už není nutně pomalý a výkon nemusí být důvodem, proč JS v backendu odmítat. Bun je velmi zajímavá volba pro high-performance API, edge služby a mikroservisy

Závěr

Benchmarky od Özkan Pakdila ukazují, že Bun není jen experiment, ale seriózní backendová technologie, která dokáže konkurovat i Rustu. Pokud se Bun podaří udržet tempo vývoje, stabilitu API a rozšířit ekosystém, může se stát nejvýkonnějším JavaScript runtime pro serverové aplikace.

Pro vývojáře, kteří chtějí spojit výkon blízký low-level jazykům s produktivním JS/TS stackem, je Bun jedním z nejzajímavějších projektů současnosti.

Zdroj: https://ozkanpakdil.github.io/posts/my_collections/2026/2026-01-10-bun-microservice-framework-benchmark/

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře