Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
L

litestar

> DevOps
Open source

Light, flexible and extensible ASGI framework | Built to scale

8.4K stars0 likes0 views
WebsiteGitHub

About

Light, flexible and extensible ASGI framework | Built to scale


Litestar is a powerful, flexible yet opinionated ASGI framework, focused on building APIs. It offers high-performance data validation, dependency injection, first-class ORM integration, authorization primitives, a rich plugin API, middleware, and much more that's needed to get applications up and running. Check out the [documentation ](https://docs.litestar.dev/) for a detailed overview of its features! Additionally, the [Litestar fullstack repository](https://github.com/litestar-org/litestar-fullstack) can give you a good impression how a fully fledged Litestar application may look. Table of Contents - [Installation](#installation) - [Quick Start](#quick-start) - [Core Features](#core-features) - [Example Applications](#example-applications) - [Features](#features) - [Class-based Controllers](#class-based-controllers) - [Data Parsing, Type Hints, and Msgspec](#data-parsing-type-hints-and-msgspec) - [Plugin System, ORM support, and DTOs](#plugin-system-orm-support-and-dtos) - [OpenAPI](#openapi) - [Dependency Injection](#dependency-injection) - [Middleware](#middleware) - [Route Guards](#route-guards) - [Request Life Cycle Hooks](#request-life-cycle-hooks) - [Performance](#performance) - [Contributing](#contributing) ## Installation ```shell pip install litestar ``` or to include the CLI and a server (uvicorn) for running your application: ```shell pip install 'litestar[standard]' ``` ## Quick Start ```python title="app.py" from litestar import Litestar, get @get("/") async def hello_world() -> dict[str, str]: """Keeping the tradition alive with hello world.""" return {"hello": "world"} app = Litestar(route_handlers=[hello_world]) ``` And run it with ```bash litestar run ``` ## Core Features - [Class based controllers](#class-based-controllers) - [Dependency Injection](#dependency-injection) - [Layered Middleware](#middleware) - [Plugin System](#plugin-system-orm-support-and-dtos) - [OpenAPI 3.1 schema generation](#openapi) - [Life Cycle Hooks](#request-life-cycle-hooks) - [Route Guards based Authorization](#route-guards) - Support for `dataclasses`, `TypedDict`, [`msgspec`](https://msgspec.dev), [pydantic version 1 and version 2 (even within the same application)](https://docs.pydantic.dev/latest/) and [(c)attrs](https://catt.rs/en/stable/) - Layered parameter declaration - Support for [RFC 9457](https://datatracker.ietf.org/doc/html/rfc9457) standardized "Problem Detail" error responses - [Automatic API documentation with](#redoc-swagger-ui-and-stoplight-elements-api-documentation): - [Scalar](https://github.com/scalar/scalar/) - [Redoc](https://github.com/Redocly/redoc) - [Stoplight Elements](https://github.com/stoplightio/elements) - [Swagger-UI](https://swagger.io/tools/swagger-ui/) - [Trio](https://trio.readthedocs.io/en/stable/) support (built-in, via [AnyIO](https://anyio.readthedocs.io/)) - Ultra-fast validation, serialization and deserialization using [msgspec](https://github.com/jcrist/msgspec) - [SQLAlchemy integration](https://advanced-alchemy.litestar.dev/latest/) ## Example Applications Pre-built Example Apps - [litestar-hello-world](https://github.com/litestar-org/litestar-hello-world): A bare-minimum application setup. Great for testing and POC work. - [litestar-fullstack](https://github.com/litestar-org/litestar-fullstack): A reference application that contains most of the boilerplate required for a web application. It features a Litestar app configured with best practices, SQLAlchemy 2.0 and SAQ, a frontend integrated with Vitejs and Jinja2 templates, Docker, and more. Like all Litestar projects, this application is open to contributions, big and small. ## Sponsors Litestar is an open-source project, and we enjoy the support of our sponsors to help fund the exciting work we do. A **huge** thanks to our sponsors: [//]: # "Note to maintainers: Highest sponsors first; no more than 3 per row - create new div if needed" Check out our sponsors in the docs If you would like to support the work that we do please consider [becoming a sponsor][sponsor-polar] via [Polar.sh][sponsor-polar] (preferred), [GitHub][sponsor-github] or [Open Collective][sponsor-oc]. Also, exclusively with [Polar][sponsor-polar], you can engage in pledge-based sponsorships. [sponsor-github]: https://github.com/sponsors/litestar-org [sponsor-oc]: https://opencollective.com/litestar [sponsor-polar]: https://polar.sh/litestar-org ## Features ### Class-based Controllers While supporting function-based route handlers, Litestar also supports and promotes python OOP using class based controllers: Example for class-based controllers ``` … ``` ### Data Parsing, Type Hints, and Msgspec Litestar is rigorously typed, and it enforces typing. For example, if you forget to type a return value for a route handler, an exception will be raised. The reason for this is that Litestar uses typing data to generate OpenAPI specs, as well as to validate and parse data. Thus, typing is essential to the framework. Furthermore, Litestar allows extending its support using plugins. ### Plugin System, ORM support, and DTOs Litestar has a plugin system that allows the user to extend serialization/deserialization, OpenAPI generation, and other features. It ships with a builtin plugin for SQL Alchemy, which allows the user to use SQLAlchemy declarative classes "natively" i.e., as type parameters that will be serialized/deserialized and to return them as values from route handlers. Litestar also supports the programmatic creation of DTOs with a `DTOFactory` class, which also supports the use of plugins. ### OpenAPI Litestar has custom logic to generate OpenAPI 3.1.0 schema, include optional generation of examples using the [`polyfactory`](https://pypi.org/project/polyfactory/) library. #### ReDoc, Swagger-UI and Stoplight Elements API Documentation Litestar serves the documentation from the generated OpenAPI schema with: - [ReDoc](https://redoc.ly/) - [Swagger-UI](https://swagger.io/tools/swagger-ui/) - [Stoplight Elements](https://github.com/stoplightio/elements) All these are available and enabled by default. ### Dependency Injection Litestar has a simple but powerful DI system inspired by pytest. You can define named dependencies - sync or async - at different levels of the application, and then selective use or overwrite them. Example for DI ```python from litestar import Litestar, get from litestar.di import Provide async def my_dependency() -> str: ... @get("/") async def index(injected: str) -> str: return injected app = Litestar([index], dependencies={"injected": Provide(my_dependency)}) ``` ### Middleware Litestar supports typical ASGI middleware and ships with middlewares to handle things such as - CORS - CSRF - Rate limiting - GZip, Brotli, and Zstd compression - Client- and server-side sessions ### Route Guards Litestar has an authorization mechanism called `guards`, which allows the user to define guard functions at different level of the application (app, router, controller etc.) and validate the request before hitting the route handler function. Example for route guards ```python from litestar import Litestar, get from litestar.connection import ASGIConnection from litestar.handlers.base import BaseRouteHandler from litestar.exceptions import NotAuthorizedException async def is_authorized(connection: ASGIConnection, handler: BaseRouteHandler) -> None: # validate authorization # if not authorized, raise NotAuthorizedException raise NotAuthorizedException() @get("/", guards=[is_authorized]) async def index() -> None: ... app = Litestar([index]) ``` ### Request Life Cycle Hooks Litestar supports request life cycle hooks, similarly to Flask - i.e. `before_request` and `after_request` ## Performance Litestar is fast. It is on par with, or significantly faster than comparable ASGI frameworks. You can see and run the benchmarks [here](https://github.com/litestar-org/api-performance-tests), or read more about it [here](https://docs.litestar.dev/latest/benchmarks) in our documentation. ## Contributing Litestar is open to contributions big and small. You can always [join our discord](https://discord.gg/litestar) server or [join our Matrix](https://matrix.to/#/#litestar:matrix.org) space to discuss contributions and project maintenance. For guidelines on how to contribute, please see [the contribution guide](https://github.com/litestar-org/litestar/blob/main/CONTRIBUTING.rst). ## Contributors ✨ Thanks goes to these wonderful people: Emoji Key
Na'aman Hirschfeld

⚠️
Peter Schutt

⚠️
Ashwin Vinod


Damian


Vincent Sarago


Jonas Krüger Svensson


<

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •Installation
  • •Quick Start
  • •Core Features
  • •Example Applications
  • •Features
  • •Class-based Controllers
  • •Data Parsing, Type Hints, and Msgspec
  • •Plugin System, ORM support, and DTOs
  • •Dependency Injection
  • •Middleware

> Tags

Pythonapiasgiasynciolitestar

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
CategoryDevOps
PricingOpen source

> Related tools

D
Docker
容器化平台,标准化应用交付
G
GitHub Actions
GitHub 原生 CI/CD 工作流
N
Nginx
高性能 Web 服务器与反向代理