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.2

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.2.tar.gz (38.2 kB view details)

Uploaded Source

Built Distribution

xpresso-0.1.2-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: xpresso-0.1.2.tar.gz
  • Upload date:
  • Size: 38.2 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.2.tar.gz
Algorithm Hash digest
SHA256 0104aff3872fe0ffab32e056971c0dbe00a91e4d3536c8692362266242498acf
MD5 e4db9b2e2d0acf73250691cc5a7575f4
BLAKE2b-256 1d19d57431db9e402762b6627b0648cb0f0c08d4f2c1c955700e37f7e067e933

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xpresso-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 65.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3305b0d20cd2a9669478c16950f3bd49ef7032d278f85adf68b9002b05e23ef8
MD5 0ca43d48b0b8203c1640c97735fba516
BLAKE2b-256 20e908a99699f843de2d5bba4b48651ad9892a4a4aa7b74ac341a8b8018b23d5

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