A lightweight ASGI web framework
Project description
QakeAPI 🚀
A modern, lightweight, and fast ASGI web framework for building APIs in Python, focusing on developer experience and performance.
✨ Why QakeAPI?
- 🚀 High Performance: Built on ASGI for maximum speed and scalability
- 💡 Intuitive API: Clean, Pythonic interface that feels natural
- 📝 Auto Documentation: OpenAPI/Swagger docs generated automatically
- 🔒 Security First: Built-in authentication, CORS, and rate limiting
- 🎯 Type Safety: Full type hints support for better IDE integration
- 📦 Modular: Easy to extend with middleware and plugins
🎯 Perfect For
- RESTful APIs
- Microservices
- Real-time applications
- API Gateways
- Backend for SPAs
- Serverless Functions
🚀 Quick Start
Option 1: Using CLI (Recommended)
# Install QakeAPI
pip install qakeapi
# Create a new project with CLI
python3 qakeapi_cli.py create my-api --template=api
# Navigate to project and run
cd my-api
python app/main.py
Option 2: Manual Setup
pip install qakeapi
Create a simple API in seconds:
from qakeapi import Application, Response
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
app = Application()
@app.get("/")
async def hello():
return {"message": "Hello, World!"}
@app.post("/items")
async def create_item(item: Item):
return Response.json(item.dict(), status_code=201)
if __name__ == "__main__":
app.run()
🛠️ CLI Tool
QakeAPI comes with a powerful CLI tool for rapid project scaffolding:
# List available templates and features
python3 qakeapi_cli.py list
# Create projects with different templates
python3 qakeapi_cli.py create my-api --template=api
python3 qakeapi_cli.py create my-web --template=web --features=auth,templates
python3 qakeapi_cli.py create my-microservice --template=microservice
# Interactive mode
python3 qakeapi_cli.py create my-app
Available Templates:
- Basic API - Simple CRUD operations
- Full API - Complete API with auth, database, cache
- Web Application - Templates, static files, frontend
- Microservice - Lightweight service with minimal dependencies
Available Features:
- Authentication (JWT)
- Database integration (SQLAlchemy)
- Caching (Redis)
- Rate limiting
- Templates (Jinja2)
- WebSockets
- Testing (pytest)
- Docker support
- Live reload for development
🌟 Key Features
Authentication & Security
from qakeapi.security import requires_auth, BasicAuthBackend
auth = BasicAuthBackend()
@app.get("/protected")
@requires_auth(auth)
async def protected():
return {"message": "Secret data"}
Rate Limiting
from qakeapi.security import RateLimiter
limiter = RateLimiter(requests_per_minute=60)
app.add_middleware(limiter)
CORS Support
from qakeapi.middleware import CORSMiddleware
cors = CORSMiddleware(allow_origins=["http://localhost:3000"])
app.add_middleware(cors)
📚 Documentation
🔥 Real-World Examples
Check out our examples directory for production-ready examples:
🤝 Contributing
We love your input! We want to make contributing to QakeAPI as easy and transparent as possible. Check out our Contributing Guide to get started.
Development Setup
git clone https://github.com/Craxti/qakeapi.git
cd qakeapi
pip install -e ".[dev]"
pytest
🌟 Show Your Support
Give a ⭐️ if this project helped you! Every star helps increase the visibility of the project.
📝 License
MIT License - feel free to use this project for your applications.
🙏 Acknowledgments
- Inspired by modern web frameworks like FastAPI and Starlette
- Built with love for the Python community
- Thanks to all our contributors!
📬 Get in Touch
- Report bugs by creating an issue
- Follow @qakeapi for updates
- Join our Discord community
Made with ❤️ by the QakeAPI Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qakeapi-1.1.0.tar.gz.
File metadata
- Download URL: qakeapi-1.1.0.tar.gz
- Upload date:
- Size: 423.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
433ae3504d90a20c0a76436d53a35069d56829b902d44901c5514c761c1f57ef
|
|
| MD5 |
f7a6896b80587b1ece5cdbb482f639ff
|
|
| BLAKE2b-256 |
55096bdeb67f85ce002c6421491bd81136b0a153110551ce49cc9ae823ab1d63
|
File details
Details for the file qakeapi-1.1.0-py3-none-any.whl.
File metadata
- Download URL: qakeapi-1.1.0-py3-none-any.whl
- Upload date:
- Size: 111.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dd250d03971e2568282b7faec1742f0b871cf6d5f58fc06c99f0e2888264c37
|
|
| MD5 |
d89f50e69abb81dd4d7c611f11ece303
|
|
| BLAKE2b-256 |
596e336ff11f02d62971b47c7c1444ec2db19938d00f2d0afcf54fd1157d7d0e
|