Skip to main content

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.

Tests Python Version License PyPI version Downloads Code style: black

QakeAPI Logo

✨ 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


Made with ❤️ by the QakeAPI Team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qakeapi-1.1.0.tar.gz (423.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qakeapi-1.1.0-py3-none-any.whl (111.0 kB view details)

Uploaded Python 3

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

Hashes for qakeapi-1.1.0.tar.gz
Algorithm Hash digest
SHA256 433ae3504d90a20c0a76436d53a35069d56829b902d44901c5514c761c1f57ef
MD5 f7a6896b80587b1ece5cdbb482f639ff
BLAKE2b-256 55096bdeb67f85ce002c6421491bd81136b0a153110551ce49cc9ae823ab1d63

See more details on using hashes here.

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

Hashes for qakeapi-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0dd250d03971e2568282b7faec1742f0b871cf6d5f58fc06c99f0e2888264c37
MD5 d89f50e69abb81dd4d7c611f11ece303
BLAKE2b-256 596e336ff11f02d62971b47c7c1444ec2db19938d00f2d0afcf54fd1157d7d0e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page