Python世界从来不缺少对于性能的追求,Robyn就是其中之一,它将 Python 的异步功能与 Rust 相结合,在设计理念和代码风格上深度借鉴**FastAPI** 和 Node.js(尤其是 Express) ,形成了Python世界最强的高性能Web框架。
Robyn 取名灵感来自于歌手 Robyn(瑞典电子流行歌手),体现了框架对轻量和节奏感的追求。在TechEmpower Benchmark 的测评中,Robyn在JSON 序列化方面接近 Fastify 和 Actix(Rust),在Plaintext 输出方面可与 C、Rust 框架相媲美,在查询数据库方面略逊于原生 Go/Rust。与Python世界的其他Web框架相比,Robyn 的表现通常比 Flask 快数十倍,比 FastAPI 快 3~10 倍(取决于测试类型和场景)。
当然,Robyn 还是一个年轻的社区,相比于其他框架,其接口组件、社区生态已经开发文档还不够成熟,但个人相信在成为Python 中最快的 Web 框架的目标指引下,在Rust语言的加成下,Robyn是一个非常值得跟随的Web框架。
安装 Robyn
Robyn 提供几种不同的安装方式:
1、仅安装基础 HTTP 路由功能
这种方式下只安装了纯 Python 部分,底层 Rust 模块会通过 PyO3 自动构建。
pip install robyn
如果只需要在当前项目安装时:
cd path_to_project_root
python3 -m venv venv
source venv/bin/activate
pip install robyn
2、带扩展功能的安装
如果需要使用一些高级特性(如 WebSocket、静态文件、SSL 支持),可以从Rust源码安装并构建。
2.1、安装 Rust 工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2.2、安装构建依赖
pip install maturin
2.3、克隆 Robyn 仓库并构建安装
git clone https://github.com/sansyrox/robyn.git
cd robyn
maturin develop
原则上来说,通过Rust源码安装Robyn可以为Robyn整合一些Rust社区中比较优质扩展组件,甚至是自己编写的Robyn组件。
第一个Robyn程序
完成Robyn的安装后,我们进入传统的hello world环节。
1、创建Robyn应用
尽管我们也可以直接打开文件夹,创建一个app.py文件,然后直接开始编写代码,但是使用Robyn CLI可以进行一些项目配置如是否使用Docker,选什么数据库等等。
python -m robyn --create
完成配置后,将生成一个类似这样的项目结构:
├── app.py
├── Dockerfile
├── requirements.txt
├── schema.prisma
2、Say Hello!
from robyn import Robyn
app = Robyn(__file__)
# 同步方式
@app.get("/")
def hello(request):
return "Hello, world"
# 异步方式
@app.get("/async")
async def async_hello(request):
return "Hello, world"
app.start(port=8080, host="0.0.0.0") # host is optional, defaults to 127.0.0.1
3、启动Robyn应用
python3 app.py
在启动Robyn应用时,也可以指定启动参数,包括:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
port | int | 5000 | 设置服务器监听的端口号 |
host | str | “127.0.0.1” | 设置服务器监听的主机地址(如 “0.0.0.0” 表示对外可访问) |
dev | bool | False | 是否启用开发模式,开启后日志更详细,便于调试 |
ssl | dict | None | None |
workers | int | 1 | 工作进程数量,增加可提升并发能力(需配合 CPU 核心) |