Sanic:Python 高性能异步 Web 框架

Sanic 在 GitHub 上已经拿到 18.6K Star 了。
这是一个 Python 3.10+ 版本的 Web 服务器和 Web 框架,设计目标就是追求高性能。它支持 Python 3.5 新增的 async/await 语法,能让代码实现非阻塞运行,响应速度更快。同时 Sanic 符合 ASGI 标准,你也可以选择其他兼容 ASGI 的 Web 服务器来部署它。

1、核心特性

Sanic 的核心定位就是简单高效。项目由社区维护,目标是提供一个简单的方式,让开发者能快速搭建出高性能的 HTTP 服务,并且易于扩展和最终实现规模化部署。
它默认集成了 uvloop 和 ujson 来进一步提升性能,如果你不想使用这两个依赖,也可以通过环境变量在安装时关闭。

正文顶部截图

2、为什么选择 Sanic

传统的 Python Web 框架大多是同步阻塞的,在处理高并发请求时性能受限。Sanic 采用异步非阻塞的设计,在 IO 密集型场景下能处理更多并发请求,响应延迟更低。
对于需要搭建高性能 API 服务、实时数据处理服务的开发者来说,Sanic 能在保持 Python 开发效率的同时,获得接近 Node.js 或 Go 语言的性能表现。

README区域截图

3、安装与使用

安装非常简单,直接通过 pip 安装即可:

pip install sanic

如果需要禁用 uvloop 或 ujson,可以在安装前设置环境变量:

export SANIC_NO_UVLOOP=true
export SANIC_NO_UJSON=true
pip install --no-binary :all: sanic

Hello World 示例代码如下:

from sanic import Sanic
from sanic.response import json

app = Sanic("my-hello-world-app")

@app.route('/')
async def test(request):
    return json({'hello': 'world'})

写完代码后,直接通过 CLI 命令启动:

sanic hello.app

启动后服务会运行在 http://127.0.0.1:8000,访问即可得到返回结果。

4、适合人群

  • 需要开发高性能 API 服务的 Python 开发者
  • 做实时数据处理、消息推送等 IO 密集型应用的团队
  • 希望保持 Python 开发效率,同时提升服务性能的项目
  • 对 ASGI 标准有需求,需要灵活选择部署方式的场景

Sanic 的文档很完善,用户指南、更新日志和 API 文档都可以在官方网站找到。项目社区活跃,有专门的论坛和交流频道供开发者讨论问题,新手也能找到标记为适合入门的任务参与贡献。

方网站找到。项目社区活跃,有专门的论坛和交流频道供开发者讨论问题,新手也能找到标记为适合入门的任务参与贡献。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐