Skip to main content

A developer centric, performant Python web framework

Project description

Xpresso

Test Coverage Package version Supported Python versions

Introduction

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

For more examples, tutorials and reference materials, see our documentation.

See this release on GitHub: v0.1.3

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

xpresso-0.1.3.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

xpresso-0.1.3-py3-none-any.whl (65.9 kB view details)

Uploaded Python 3

File details

Details for the file xpresso-0.1.3.tar.gz.

File metadata

  • Download URL: xpresso-0.1.3.tar.gz
  • Upload date:
  • Size: 38.1 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

Hashes for xpresso-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6da65aa27c0f361b2bf539415c3769a4d836d1b6e2f50ccbd91ec230fe9012f7
MD5 1444aad375004a5f74ce44ee17a42ed5
BLAKE2b-256 51f9e7a18405f1bd8c63a26dc6b4282ef60522e70f2dae56de9a0d3949c16325

See more details on using hashes here.

File details

Details for the file xpresso-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: xpresso-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 65.9 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

Hashes for xpresso-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e1b79a7d28cea9cbb60b888466f5e041a74f9938d31afbdb288acf2a5c2ced48
MD5 6a21d9a186956ad2f90c99ef37912f28
BLAKE2b-256 bfb20280fd72feefb142fd2837178321d9cacbaead3f149948446706d04ed050

See more details on using hashes here.

Supported by

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