Open-source Python framework
Hayavega#
Welcome to Hayavega — a Python web framework benchmarked openly against FastAPI, Django, and Rust-core alternatives like Robyn and Granian, with every result published, including the ones it doesn't win.
A conventional, batteries-included project structure. Automatic, interactive API documentation, generated from your code. A Rust core where it actually wins the benchmark, and honestly disclosed where it doesn't.
Why Hayavega#
-
Batteries included, honestly documented
Auth (password reset, email verification, session rotation), admin, migrations, CSRF, rate limiting, and a security-review checklist all ship in the box. Every claim in these docs links to a real test.
-
Wins on published, reproducible benchmarks
Real
ohaload tests, reproducible methodology, losses disclosed alongside wins. See the performance page for the numbers, not adjectives. -
Rust where it measurably helps
A native Rust WSGI server (2–3× faster than a reference pure-Python WSGI server across every benchmarked scenario — see the performance page), TLS via
rustls, and Signals' worker-pool dispatcher — each one benchmarked before shipping, including the ideas that didn't pan out. -
REST, GraphQL, and ASGI — one auth system
api_routegenerates OpenAPI/Swagger automatically. A hand-written GraphQL engine with depth limits and introspection control.async defviews under ASGI with zero migration for existing sync code. -
A real migration system
Transactional, checksummed migrations with schema-diff detection, not a toy. SQLite, PostgreSQL, and MySQL/MariaDB all covered by CI.
-
Built to be tested
TestClientandAsyncTestClientdrive your app in-process with no real server needed — the same tooling this project's own 415+ tests run on.
See it in thirty seconds#
pip install hayavega
hayavega-admin newproject mysite
cd mysite
python manage.py newapp blog
python manage.py launch
from hayavega import api_route, path
def hello(request):
return {"message": "Hello from Hayavega"}
urlpatterns = [
api_route("api/hello", hello, methods=("GET",)),
]
Open http://127.0.0.1:8000/openapi.json and the endpoint is already documented — no extra decorator, no separate spec file.
What's actually in here#
| Routing & views | Routing |
| Data | Models & migrations |
| Auth & access | Authentication · Admin |
| Rendering | Templates |
| APIs | REST & OpenAPI · GraphQL |
| Concurrency | ASGI · Rust runtime |
| Events | Signals |
| Quality | Testing · Security |
| Shipping it | Deployment |
This site is new
This documentation site is a fresh build, not a reformatted copy of the project's existing README.md/DEPLOYMENT.md. Those files still exist at the repository root and stay accurate — this site is the deeper, browsable reference they now point to.