Zenith Framework
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_URLandSECRET_KEYenv vars for production - Automatic middleware - Security, CORS, logging configured automatically
- Environment-aware - Uses
ZENITH_ENVor 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 -
Sessionfor database,Authfor 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
- Quick Start Guide - Get up and running in 5 minutes
- API Reference - Complete API documentation
- Architecture Guide - Framework design patterns
- Examples - Real-world usage examples
- Contributing - Development guidelines
📚 Examples
🔥 Modern DX Examples:
- Modern Developer Experience - Complete modern patterns showcase
- One-Liner Features - Convenience methods demonstration
- One-liner Features -
app.add_auth(),app.add_admin(),app.add_api() - Zero-config Setup - Automatic environment detection
🚀 Complete Examples:
- Hello World - Simple setup (
app = Zenith()) - Basic API - Routing and validation
- Authentication - JWT authentication
- WebSocket Chat - Real-time communication
- Background Jobs - Task processing
- Security Middleware - Production security
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.
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zenithweb-0.0.14.tar.gz | 366.6 kB | Without provenance | Details for zenithweb-0.0.14.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| zenithweb-0.0.14-py3-none-any.whl | Python 3 | none | any | Details for zenithweb-0.0.14-py3-none-any.whl |
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
|
Security for zenithweb 0.0.14
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.