Keev
A lightweight ASGI web framework for Python that focuses on simplicity and performance.
Features
- FastAPI-like route decorators
- Built-in request validation using Pydantic
- Automatic OpenAPI docs (Swagger UI & ReDoc)
- SQLAlchemy integration
- Static file serving
- Middleware support
- Plugin system
- Colored logging
Installation
pip install keev
Quick Start
from keev import Application, Router, JSONResponse
from pydantic import BaseModel
app = Application()
router = Router()
class Item(BaseModel):
name: str
price: float
@router.get("/")
async def read_root():
return JSONResponse({"message": "Hello World"})
@router.post("/items")
async def create_item(item: Item):
return JSONResponse(item.model_dump(), status_code=201)
app.router = router
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Running the Example
- Clone the repository:
git clone https://github.com/yourusername/keev.git
cd keev
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the example app:
python example.py
The server will start at http://localhost:8000. Visit:
- http://localhost:8000/ - API root
- http://localhost:8000/docs - Swagger UI documentation
- http://localhost:8000/redoc - ReDoc documentation
Development
Running Tests
pytest tests/
Running Benchmarks
python benchmark.py
Project Status
This is a hobby project created for learning purposes. While functional, it's not recommended for production use.
License
MIT
Metadata
Release files for keev 0.1.2
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 |
|---|---|---|---|---|
| keev-0.1.2.tar.gz | 19.8 kB | Without provenance | Details for keev-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| keev-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for keev-0.1.2-py3-none-any.whl |
Total release size: 41.1 kB
Release files / keev-0.1.2.tar.gz
| Download URL | keev-0.1.2.tar.gz |
|---|---|
| Size | 19.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78c590fdfbb88ab94c4992f59d3907004127a462733d8841ddeb4221a45f84a0
|
|
BLAKE2b-256 checksum How to use checksums |
884548efe6d3359fbda013184b45c9e49cc2b4de9481f4a28ccc30f3767c0edc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / keev-0.1.2-py3-none-any.whl
| Download URL | keev-0.1.2-py3-none-any.whl |
|---|---|
| Size | 21.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da70faa2f082adb58b8f25593a40b83b17a79d78edce960170ad5e22f894f379
|
|
BLAKE2b-256 checksum How to use checksums |
89bc81eeaa82941f842ec6f1a72a45e858fc1302ab6fa7df0eb8cc12b4a5c687
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for keev 0.1.2
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.