Litestar:专注 API 的 Python ASGI 框架
Litestar:专注 API 的 Python ASGI 框架
Litestar 是一个 Python ASGI 框架,目前在 GitHub 上收获了 8,258 颗 Star。


Litestar 的设计目标是构建 API。它提供了高性能数据验证、依赖注入、ORM 集成、授权机制、插件 API 和中间件等组件。
核心特性
Litestar 支持基于类的控制器和基于函数的路由处理器两种写法。框架对类型注解有严格要求,如果忘记给路由处理器标注返回类型,会直接抛出异常。这是因为 Litestar 将类型信息用于生成 OpenAPI 文档,以及验证和解析数据。类型注解是框架的基础设施,不允许省略。
数据序列化和反序列化由 msgspec 驱动。Litestar 内置了 SQLAlchemy 插件,允许直接在路由中使用声明式类作为参数类型和返回值,不需要手动转换。
框架自动生成 OpenAPI 3.1 规范,并可选使用 polyfactory 生成示例数据。文档界面方面,Litestar 内置了 ReDoc、Swagger UI、RapiDoc、Stoplight Elements 和 Scalar 五种方案,默认全部启用。
依赖注入系统借鉴了 pytest 的设计。你可以在应用的不同层级定义命名依赖,支持同步和异步,也可以选择性覆盖。
中间件方面,Litestar 内置了 CORS、CSRF、速率限制、GZip / Brotli / Zstd 压缩、客户端会话和服务端会话。
授权通过 guards 机制实现。你可以在应用、路由器或控制器等层级设置守卫函数,在请求到达处理器前进行校验,未通过则抛出异常。
生命周期钩子支持 before_request 和 after_request,与 Flask 的用法类似。
Litestar 同时支持 dataclass、TypedDict、msgspec、pydantic v1/v2 和 attrs 作为数据模型,支持在同一应用中混用不同版本的数据模型。
框架还实现了 RFC 9457 标准的 Problem Detail 错误响应,以及 Trio 支持。
类控制器的写法如下:
from litestar import Controller, get, post
from typing import List
class UserController(Controller):
path = "/users"
@post()
async def create_user(self, data: User) -> User: ...
@get()
async def list_users(self) -> List[User]: ...
这种写法适合规模较大的项目,可以更好地组织路由逻辑。
安装与使用
通过 pip 安装:
pip install litestar
如需 CLI 和 uvicorn 服务器:
pip install 'litestar[standard]'
快速启动示例:
from litestar import Litestar, get
@get("/")
async def hello_world() -> dict[str, str]:
return {"hello": "world"}
app = Litestar(route_handlers=[hello_world])
启动命令:
litestar run
性能
Litestar 在性能测试中与其他 ASGI 框架持平或更快。具体数据可在官方文档的基准测试页面查看。
litestar run
**性能**
Litestar 在性能测试中与其他 ASGI 框架持平或更快。具体数据可在官方文档的基准测试页面查看。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)