Skip to content

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.

Get started

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 oha load 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_route generates OpenAPI/Swagger automatically. A hand-written GraphQL engine with depth limits and introspection control. async def views 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


    TestClient and AsyncTestClient drive 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
config/routes.py
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.

Read the full quickstart

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.