Miért érdemes Rust magot építeni a Python webappba? – Tapasztalatok a JustAPI-val

Miért érdemes Rust magot építeni a Python webappba? – Tapasztalatok a JustAPI-val

Aug 10, 2026 python rust web-development performance justapi framework backend api-development

JustAPI: Amikor a Python csak azt csinálja, amit te írsz

Van egy kérdés, ami egy fejlesztőt éjszakákon át foglalkoztatott: miért tölt a Python web framework annyi időt olyan dolgokkal, amelyeknek semmi közük a saját kódodhoz?

Nézzük meg, mi történik egy tipikus FastAPI kéréssel. Először jön a Starlette, azon ül az uvicorn, ami az asyncio event loop köré van csomagolva, és az egész kommunikál a socket és a handler között. Minden kérés – még mielőtt elérné a tényleges üzleti logikát – rengeteg Python határon fut át, serialize-olódik Pythonban, és olyan kódon megy keresztül, ami minden egyes kérésnél ugyanúgy fut.

És mi van, ha ez megváltozna? Mi van, ha a framework – az a rész, ami teljesen egyformán fut minden alkalmazásnál – teljes egészében Rustban élne, és a Python csak azokon a helyeken futna, ahol tényleg egyedi dolgot építesz?

Ez a JustAPI alapötlete, és miután alaposan megnéztem a projektet, úgy gondolom, érdemes megérteni nemcsak azt, hogy mit csinál, hanem azt is, miért számítanak az architektúrás döntések a következő projektednél.

A teljesítményszámok nem azt jelentik, amit gondolnál

Mielőtt belemennénk az architektúrába, beszéljünk a számokról – mert teljesítménybeli állítások kontextus nélkül marketing, nem mérnöki munka.

A projekt 766 000 kérést tudott kiszolgálni másodpercenként egy egyszerű hello-world teszten. A router 51 nanoszekundum alatt végez route-lookupot 500 útvonalas konfigurációnál. Az async throughput 14-szeresére javult a multi-threaded Tokio és a free-threaded CPython támogatás bevezetésével.

Mit jelentenek ezek a számok a valóságban? Ha egy API-t üzemeltetsz, ami másodpercenként több ezer kérést dolgoz fel, ezek a javulások összeadódnak. Alacsonyabb latency, kevesebb várakozás a felhasználóknak. Magasabb throughput, több terhelést bír a szerver.

De a lényeg nem is a nyers számokban van – hanem abban, amit nem kell menedzselned.

Nincs uvicorn. Nincs Gunicorn. Nincs ASGI middleware stack, amit hajnali háromkor kell debugolnod. A teljes kérés-pipeline Rustban fut, és a Python kódod csak... a te kódod.

Az architektúra: a Python a kivétel, nem a szabály

Nézzük, hogyan néz ki a kérés útja: Kernel (epoll/io_uring) → Tokio connection manager → TLS a rustls-en → HTTP parsing a Hyper-rel → Router (matchit radix trie) → Middleware lánc (auth, CORS, rate-limiting) → Python határ PyO3-on át → A te handlered → Rust serializer → Response.

Figyeld meg, hol lép be a Python: csak ott, ahol az alkalmazáslogika kezdődik. Ami előtte van – ami minden kérésnél teljesen egyformán fut – az Rust.

Ez fontos különbség. A JustAPI mögött álló fejlesztő egy egyszerű szabályt követett: ha egy feature megvalósítható Rustban, akkor Rustban kell megvalósítani. Nem "gyorsabb lehet Rustban" – megvalósítható Rustban. A Python a ragasztó szerepére van fenntartva a Rust értékek és a handlerek között.

Ez a megkötés formálta a teljes projektet, és valami tényleg más lett belőle, mint a többi Python framework, ami csak odapakolt Rust darabokat.

Mit jelent ez a fejlesztői élmény szempontjából?

Itt válik igazán érdekessé ez a megközelítés a startupok és növekvő csapatok számára.

Kapás egy teljes API frameworket – HTTP/1.1 és HTTP/2, TLS, routing paraméterekkel, JSON serialization, automatikus OpenAPI dokumentáció – 30 sornyi kóddal, ami tényleg úgy néz ki, ahogy Pythonban lennie kell:

from justapi import JustAPIApp

app = JustAPIApp()

@app.get("/")
def hello():
    return {"Hello": "World"}

app.run()

De a ismerős felszín alatt egy Rust szerver fut, ami kezeli a TLS-t, menedzseli a kapcsolatokat és serialize-olja a response-okat – anélkül, hogy egyszer is belépne a Pythonba. A fejlesztői élmény Pythonic marad. A runtime teljesítmény Rust.

Olyan csapatoknak, amik MVP-t építenek, ami később skálázódhat, ez fontos. Ma Pythont írsz. Rust teljesítményt kapsz anélkül, hogy bármit újra kellene írnod, amikor több terhelést kell kezelned.

Az AI faktor: mérnöki partner, nem csere

Ez a projekt agentic AI-t aktív résztvevőként épült – nem autocomplete-ként, hanem mérnöki útmutatóként, aki segített az architektúrát tervezni, döntéseket kóddá alakítani, bugokat találni és teszteket írni.

Érdemes őszintén beszélni erről, mert egyre gyakoribb és ritkán kommunikálják transzparensen.

A fejlesztő a kódbázist három szintre osztja: részek, amiket teljesen megért, részek, amiket elég jól ért a karbantartáshoz, és részek, amiket az AI írt, ő ellenőrzött és tesztelt, de fejből nem tudná reprodukálni. Nyíltan vállalja, hogy ez része annak, ahogy a projekt létezik.

Szerintem ez a helyes keretezés. Az AI eszközök gyorsítják a komplex projektek fejlesztését, és ennek tagadása senkinek nem segít. A lényeg az, hogy tisztában legyél azzal, mi az, amit tényleg értesz, és mi az, amit delegáltál – és őszinte legyél magaddal, melyik melyik.

A gyakorlati tanulság

Az olyan frameworkek, mint a JustAPI, eltolást jelentenek abban, ahogy a Python szerepéről gondolkodunk a nagy teljesítményű rendszerekben. A Python nem megy sehova az alkalmazáslogikához – az olvashatósága és az ökoszisztémája túl értékes. De az a feltételezés, hogy maga a framework is Pythonban kell futjon, megkérdőjeleződik.

Akár a JustAPI lesz a következő frameworked, akár csak egy érdekes kísérlet marad, az alaptétel értékes: nézd meg, mi fut ugyanúgy minden kérésnél a stackedben. Az valószínűleg Rust terület. Ami változik – az maradjon abban a nyelvben, amiben a csapatod a legproduktívabb.

A rés a "működik" és a "jól működik" között egyre szűkül. A felhasználók nem fogják látni az architektúrát, de fogják érezni a latency-t.

Merre tartunk?

A JustAPI jelenleg a 2.0.10-es verziónál tart, dokumentált feature-ökkel mint WebSockets, SSE, background tasks, scheduler, adatbázis hozzáférés SQLx-en át, és operatív eszközök mint OpenTelemetry és Prometheus metrics. Elérhető a PyPI-n, wheel-ekkel Linuxra, macOS-re, Windowsra és a free-threaded CPython 3.14t buildre.

A számok a repóban vannak. A tesztek átmennek. A hibák dokumentáltak. Ez az a mérnöki transzparencia, amit több helyen kellene látnunk.

Ha Python API-kat építesz és a teljesítmény számít, érdemes vetni egy pillantást. A Python web frameworkek jövője lehet, hogy nem úgy néz ki, mint amit ma használsz.

Read in other languages:

RU BG EL UZ CS TR FI SV RO PT PL NB NL IT FR ES DE DA ZH-HANS EN