Http-libraries-comparison
此表格比较了 Python 社区中可用的 HTTP Python 库(主要用于客户端使用)。我们认为一些库可以忽略,例如 Trec、Pycurl Tornado,因为它们与我们的用例略有脱节,但我们列出了它们以便对我们的生态系统有一个全面的了解。
您可以在相关的 etherpad 中添加您的优点和缺点 https://etherpad.opendev.org/p/eventlet-removal-http-libraries-comparison。
SGI 服务器的比较正在这里进行 https://wiki.openstack.org/wiki/SGI-servers-comparison
Web 框架的比较正在这里进行 https://wiki.openstack.org/wiki/Web-frameworks-comparison
| 库 | 易用性 | 异步支持 | 性能 | 高级特性 | 可扩展性 | 错误处理 | HTTP/2 和 WebSocket 支持 | SQLAlchemy 支持 | 文档 | 维护活跃度 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Requests | 非常高 | 否 | 中等 | 高 | 高 | 优秀 | 否 | Yes | 良好 | 非常活跃 | 适用于简单、同步的 HTTP 请求。非常流行且易于使用。 |
| HTTPX | 高 | Yes | 高 | 高 | 非常高 | 优秀 | Yes | Yes | 非常好 | 非常活跃 | Requests 的异步替代方案,支持 HTTP/2。适用于现代应用程序。 |
| aiohttp | 中等 | Yes | 非常高 | 高 | 高 | 良好 | Yes | Yes | 良好 | 活跃 | 高性能异步库,非常适合大规模或实时应用程序。 |
| treq | 中等 | Yes | 高 | 中等 | 中等 | 良好 | 否 | Yes | 一般 | 活跃 | 基于 Twisted 构建,非常适合异步环境,但不如 aiohttp 或 HTTPX 流行。 |
| pycurl | 低 | 否 | 非常高 | 高 | 低 | 差 | 否 | Yes | 差 | 低 | 高性能,可对 HTTP 进行低级别控制,但使用起来更困难,用户体验较差。 |
| urllib | 低 | 否 | 低 | 低 | 低 | 差 | 否 | Yes | 差 | 不适用 | 内置,但难以使用。缺乏其他库的高级特性。 |
| httplib2 | 中等 | 否 | 中等 | 高 | 中等 | 中等 | 否 | Yes | 一般 | 低 | 支持缓存和身份验证,但现在已不常用。适用于简单的需求。 |
| grequests | 高 | Yes | 中等 | 中等 | 中等 | 良好 | 否 | Yes | 良好 | 适度活跃 | Requests 的异步版本,基于 `gevent`。易于从 Requests 过渡。 |