A developer centric, performant Python web framework
Project description
Xpresso is an ASGI web framework built on top of Starlette, Pydantic and di, with heavy inspiration from FastAPI.
Some of the standout features are:
- ASGI support for high performance (within the context of Python web frameworks)
- OpenAPI documentation generation
- Automatic parsing and validation of request bodies and parameters, with hooks for custom extractors
- Full support for OpenAPI parameter serialization
- Highly typed and tested codebase with great IDE support
- A powerful dependency injection system, backed by di
Requirements
Python 3.7+
Installation
pip install xpresso
You'll also want to install an ASGI server, such as Uvicorn.
pip install uvicorn
Example
Create a file named example.py
:
from pydantic import BaseModel
from xpresso import App, Path, FromPath, FromQuery
class Item(BaseModel):
item_id: int
name: str
async def read_item(item_id: FromPath[int], name: FromQuery[str]) -> Item:
return Item(item_id=item_id, name=name)
app = App(
routes=[
Path(
"/items/{item_id}",
get=read_item,
)
]
)
Run the application:
uvicorn example:app
Navigate to http://127.0.0.1:8000/items/123?name=foobarbaz in your browser. You will get the following JSON response:
{"item_id":123,"name":"foobarbaz"}
Now navigate to http://127.0.0.1:8000/docs to poke around the interactive Swagger UI documentation:
For more examples, tutorials and reference materials, see our documentation.
See this release on GitHub: v0.3.0
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
File details
Details for the file xpresso-0.3.0.tar.gz
.
File metadata
- Download URL: xpresso-0.3.0.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.1 Linux/5.11.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a760333481f6d8ca84c2b64ef53d254ddeeeafbba7166acc0c6724257b04e46 |
|
MD5 | abe8fa5fdbc90591c83ebab45dec9272 |
|
BLAKE2b-256 | 2940a86308c8536f660721ef56ef606941467742d25786e9e8c0eb38242c0b7a |
File details
Details for the file xpresso-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: xpresso-0.3.0-py3-none-any.whl
- Upload date:
- Size: 66.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.1 Linux/5.11.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ff9a093baf5eb6e7d154a2a726c3a9e5a0d767451fe676ab41e246dbea6505f |
|
MD5 | 844e09445042f3f67e8b41c1a5f11974 |
|
BLAKE2b-256 | b36fb441fe4489bbdd26afc8dd624fd50a420362a99fbe156ee95f823a318d2e |