Skip to main content

Zenith Framework

PyPI version Python 3.12+ License: MIT Tests Documentation

A modern Python web framework with intuitive developer experience and exceptional performance.

🎯 Modern DX: Zero-config setup, database models with chainable queries, one-liner features, and clean architecture patterns - making Python web development incredibly productive.

What is Zenith?

Zenith brings together exceptional productivity, outstanding performance, and full type safety:

  • 🚀 Zero-config setup - app = Zenith() just works with intelligent defaults
  • 🏗️ Intuitive models - User.where(active=True).order_by('-created_at').limit(10)
  • ⚡ One-liner features - app.add_auth(), app.add_admin(), app.add_api()
  • 🎯 Enhanced DX - No session management, ZenithModel handles it automatically
  • 🏎️ High performance - Fast async architecture with production-tested throughput
  • 🛡️ Production-ready - Security, monitoring, and middleware built-in

🚀 Zero-Config Quick Start

pip install zenithweb
from zenith import Zenith
from zenith import Session  # Database session dependency
from zenith.db import ZenithModel  # Modern database models
from sqlmodel import Field
from pydantic import BaseModel
from typing import Optional

# 🎯 Zero-config setup - just works!
app = Zenith()

# ⚡ Add features in one line each
app.add_auth()    # JWT authentication + /auth/login
app.add_admin()   # Admin dashboard at /admin
app.add_api("My API", "1.0.0")  # API docs at /docs

# 🏗️ Modern models with chainable query patterns
class User(ZenithModel, table=True):
    id: Optional[int] = Field(primary_key=True)
    name: str = Field(max_length=100)
    email: str = Field(unique=True)
    active: bool = Field(default=True)

class UserCreate(BaseModel):
    name: str
    email: str
    active: bool = True

# 🎨 Clean routes with enhanced DX
@app.get("/")
async def home():
    return {"message": "Modern DX in Python!"}

@app.get("/users")
async def list_users():  # ✨ No session management needed!
    # Clean chaining: User.where().order_by().limit()
    users = await User.where(active=True).order_by('-id').limit(10).all()
    return {"users": [user.model_dump() for user in users]}

@app.post("/users")
async def create_user(user_data: UserCreate):
    # Clean API: User.create() - no session management!
    user = await User.create(**user_data.model_dump())
    return {"user": user.model_dump()}

@app.get("/users/{user_id}")
async def get_user(user_id: int):
    # Automatic 404 handling
    user = await User.find_or_404(user_id)
    return {"user": user.model_dump()}

# 🏃‍♂️ Run it
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

Run with:

uvicorn main:app --reload

🎯 Modern DX Features

🚀 Zero-Config Setup (for Development)

app = Zenith()  # Just works! No complex configuration needed
  • Intelligent defaults - Development uses SQLite, auto-generated dev keys
  • Production ready - Set DATABASE_URL and SECRET_KEY env vars for production
  • Automatic middleware - Security, CORS, logging configured automatically
  • Environment-aware - Uses ZENITH_ENV or intelligent detection

🏗️ Intuitive Database Models

# Intuitive database operations - seamless chaining!
users = await User.where(active=True).order_by('-created_at').limit(10).all()
user = await User.find_or_404(123)  # Automatic 404 handling
user = await User.create(name="Alice", email="alice@example.com")
  • ZenithModel - Modern ORM with chainable queries
  • Automatic sessions - No manual database session management
  • Type-safe queries - Full async support with SQLModel integration

⚡ One-Liner Features

app.add_auth()     # JWT authentication + /auth/login endpoint
app.add_admin()    # Admin dashboard at /admin with health checks
app.add_api()      # API documentation at /docs and /redoc
  • Instant features - Complex functionality in single lines
  • Production-ready - Each feature includes monitoring and security
  • Configurable - Sensible defaults with full customization options

🎯 Clean Dependency Injection

@app.get("/users")
async def get_users(session: AsyncSession = Session):
    # Simple database session injection
    users = await User.all()  # ZenithModel uses the session automatically
    return users
  • Simple patterns - Session for database, Auth for current user
  • Service injection - Inject(ServiceClass) for business logic
  • Type-safe - Full IDE support and autocompletion

🏎️ High Performance

  • Fast async architecture - Thousands of requests per second
  • Production-tested - Comprehensive benchmark suite validates throughput
  • Async-first - Full async/await with Python 3.12+ optimizations
  • Optimized - Connection pooling, slotted classes, efficient middleware

🛡️ Production-Ready

  • Security by default - CSRF, CORS, security headers automatic
  • Built-in monitoring - /health, /metrics, request tracing
  • Error handling - Structured errors with proper HTTP status codes
  • Testing framework - Comprehensive testing utilities included

🌐 Full-Stack Support

  • Serve SPAs (React, Vue, SolidJS) with app.spa("dist")
  • WebSocket support with connection management
  • Static file serving with caching
  • Database integration with async SQLAlchemy

📁 Project Structure

Clean organization with zero configuration:

your-app/
├── main.py         # app = Zenith() + routes
├── models.py       # ZenithModel classes
├── services.py     # Business logic (optional)
├── migrations/     # Database migrations (auto-generated)
└── tests/          # Testing with built-in TestClient

Or traditional clean architecture:

your-app/
├── main.py         # Application entry point
├── models/         # ZenithModel classes
├── services/       # Service classes with @Service decorator
├── routes/         # Route modules (optional)
├── middleware/     # Custom middleware
└── tests/          # Comprehensive test suite

Performance

Zenith delivers high-performance async request handling with production-tested throughput.

Run your own benchmarks:

uv run pytest tests/performance/ -v

The framework is optimized with connection pooling, slotted classes, and efficient middleware. Performance varies by hardware, middleware configuration, and application complexity.

Documentation

📚 Examples

🔥 Modern DX Examples:

🚀 Complete Examples:

CLI Tools

# Create new project with secure defaults
zen new my-api

# Generate secure SECRET_KEY
zen keygen

# Show configuration and environment info
zen config --all

# Generate boilerplate code
zen generate model User
zen generate service UserService
zen generate graphql UserSchema

# Development server with hot reload
zen dev

# Production server
zen serve --workers 4

Installation

# Basic installation
pip install zenithweb

# With production dependencies
pip install "zenithweb[production]"

# With development tools
pip install "zenithweb[dev]"

Production Deployment

Docker

FROM python:3.12-slim

WORKDIR /app
COPY . .
RUN pip install "zenithweb[production]"

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Environment Configuration

from zenith import Zenith

app = Zenith()

# Environment-specific behavior:
# development (or dev): Enhanced error reporting, auto-generated secrets
# production (or prod): Optimized for deployment, requires SECRET_KEY
# test: Testing mode with rate limiting disabled
# staging: Production-like with enhanced monitoring

# Manual configuration if needed
from zenith.config import Config
app = Zenith(
    config=Config(
        database_url=os.getenv("DATABASE_URL"),
        redis_url=os.getenv("REDIS_URL"),
        secret_key=os.getenv("SECRET_KEY")
        # debug automatically set based on ZENITH_ENV
    )
)

Contributing

We welcome contributions! Please see our Contributing Guide.

git clone https://github.com/nijaru/zenith.git
cd zenith
pip install -e ".[dev]"
pytest  # Run tests

Status

Latest Version: v0.0.11 Python Support: 3.12-3.14 Test Suite: 100% passing (899 tests) Performance: High-performance async architecture with production-tested throughput Architecture: Clean separation with Service system and simple dependency patterns

Zenith is production-ready with comprehensive middleware, performance optimizations, and clean architecture patterns for modern Python applications.

License

MIT License. See LICENSE for details.

Release files for zenithweb 0.0.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zenithweb 0.0.14
File Size Uploaded
zenithweb-0.0.14.tar.gz 366.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zenithweb 0.0.14
File Interpreter ABI Platform
zenithweb-0.0.14-py3-none-any.whl Python 3 none any Details

Total release size: 595.2 kB

Release files / zenithweb-0.0.14.tar.gz

Download URL zenithweb-0.0.14.tar.gz
Size 366.6 kB
Tags Source
SHA-256 checksum
How to use checksums
23a24ffad757c8f0151dd41ce1be5ddf1df37cfc659e4452fe3bbe9085fe95ab
BLAKE2b-256 checksum
How to use checksums
e50c8a19de06bcbef0ff207db47337940a6eec3d82ed1d5e5c106990bdd152b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / zenithweb-0.0.14-py3-none-any.whl

Download URL zenithweb-0.0.14-py3-none-any.whl
Size 228.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2714daa743dd9d8d308d5a7ec9b3625c15ca7b9e146065c50f26ff12210c5020
BLAKE2b-256 checksum
How to use checksums
99a3c22adc19ae4aca12c7faef4332319cb856cef697286776695ea3dd869d24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.0.14 This release

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page