

上周,LiteLLM 发布了一篇技术博客,宣布正在用 Rust 重写核心网关。
数字很震撼:
指标 | Python 版 | Rust 版 | 差距 |
|---|---|---|---|
每请求延迟 | ~7.5ms | ~0.05ms | 150 倍 |
吞吐量(50 并发) | 453 req/s | 6,782 req/s | 15 倍 |
峰值内存 | 358.9MB | 31.7MB | 11 倍 |

0.05ms 意味着什么?网关本身的开销基本消失了。你的请求从进来再到转发给上游 LLM,中间只花了 50 微秒。瓶颈完全在 LLM 那边,不在网关这里。
31.7MB 意味着什么?一个吃 32MB 的进程,你根本注意不到它在跑。部署到生产环境,每个 pod 都省几百 MB,跨区域、跨副本一乘,云账单差异巨大。
但如果我们只看 LiteLLM 这一个案例,会误以为"这只是某家公司的性能优化"。把时间线拉长,你会发现一个更底层的趋势:AI 基础设施正在分层重构,Python 正在被系统性替代。
AI 工具链里有一类组件不做模型推理,但负责把数据搬到正确的地方——路由、转发、检索、格式化、持久化。这些活的共同特征:高频、低延迟、内存敏感、长期稳定运行。
而 Python 在这些场景下有几个结构性问题:
第一,GIL(全局解释器锁)。Python 的多线程在高并发 I/O 场景下基本是摆设。AI Gateway 是什么?就是高并发 I/O——同时几百个请求进来,每个都要转发给不同的 LLM 提供商。GIL 让 Python 先天吃亏。
第二,内存不可控。引用计数 + 垃圾回收,长时间运行的服务内存会慢慢涨,涨到 OOM kill。LiteLLM 的原话:"Python proxy's memory consumption multiplies across every pod, region, and retry, causing OOM kills at critical moments."——最关键的时候它崩了。
第三,部署体积。Python 服务需要解释器、依赖、虚拟环境。Rust 编译出来就是一个二进制文件,扔上去就能跑。
如果你关注 AI 基础设施的演进,会发现 Rust 已经渗透到了各个管道层:
这些项目的共同点:它们都是 AI 工具链里的"管道"。Rust 的所有权系统在编译期就干掉了数据竞争和内存泄漏,没有 GC,内存分配是确定性的,编译产物是单二进制文件——这些设计目标恰好命中了 AI 管道层的核心矛盾。
LiteLLM 没有一夜重写。它分了四个阶段,每个阶段都能独立上线、拿到收益:
Stage 0:纯 Python(FastAPI)—— 当前状态
Stage 1:Rust 核心 + Python I/O
Rust 负责数据转换(请求/响应/流式块/token 计数)
Python 仍然负责网络、数据库、认证
通过 PyO3 桥接
Stage 2:FastAPI 变成薄壳
认证、限流、回调还在 Python
整个转发路径变成一次 Rust 调用
Stage 3:纯 Rust 服务器(axum/hyper)
Python 彻底退出热路径
用户的 Python 插件通过可选 sidecar 继续运行
路由按风险排序迁移:先迁最简单的 OCR,再迁 /v1/messages(加流式复杂度),最后迁 /chat/completions(最大表面积:工具调用、多模态)。每条路由迁移前过"一致性检查"——Rust 版本输出必须和 Python 版本完全一致才能激活。
这不是技术决策,是工程决策。技术上用 Rust 重写不难,难的是怎么在生产环境里一步步替换,不翻车。时间表:半年,四步走。
150 倍这个数字需要看测试条件——LiteLLM 的 benchmark 用的是 mock upstream(模拟上游 LLM),只测网关本身转发性能。在真实场景下,你的瓶颈在 LLM 那边(动辄几秒),网关从 7.5ms 降到 0.05ms 的体感差异没有 150 倍那么夸张。它解决的是"网关自身不成为瓶颈"和"内存不爆炸"。
Rust 的开发成本也是真实的。学习曲线、编译时间、类型系统的严格程度,都意味着开发速度会比 Python 慢。LiteLLM 能推进这个迁移,说明团队已有足够的 Rust 能力——不是每个团队都能做这件事。
最终形态里,用户的 Python 插件仍然通过 sidecar 运行。这暗示了一个事实:Python 在 AI 生态里的位置短时间内不会被 Rust 取代,它会被"推到它擅长的层"——运行时归 Rust,用户自定义逻辑和快速原型归 Python。这个分工比"全 Rust"更健康。
如果说 Rust 是在"管道层"与 Python 正面竞争性能,C#/.NET 走的是另一条更隐蔽的路——让企业级 AI 应用彻底不需要 Python。
.NET 10 引入原生 ONNX 支持,ML.NET 作为本地推理引擎,让 C# 应用可以直接运行模型推理。对于企业业务场景(分类、异常检测、推荐),这消除了"Python 做模型、C# 做业务"的架构割裂。
你不需要一个 Python 微服务来做推理,C# 应用自己就能跑。
2025 年 10 月,Microsoft 将 Semantic Kernel 和 AutoGen 合并为统一的 Microsoft Agent Framework。这不是简单的 SDK 更新,而是一个战略信号:
这意味着:在 .NET 企业生态中,AI Agent 的编排、规划、记忆、工具调用全部可以用 C# 原生完成。不需要引入 Python 技术栈,不需要维护两套语言环境,不需要在 C# 和 Python 之间做序列化/反序列化的性能损耗。
维度 | Rust (Axum) | ASP.NET Core | Python (FastAPI) |
|---|---|---|---|
吞吐量 | ~500k req/s | ~150-300k req/s | ~10-20k req/s |
内存占用 | 5-30MB | 50-200MB | 200-500MB |
启动时间 | 毫秒级 | 秒级(JIT) | 秒级(解释器) |
开发效率 | 低(所有权系统) | 高(成熟生态) | 极高(动态类型) |
C# 的 GC 虽然存在,但 .NET 8/10 的 Server GC 已大幅优化,对大多数企业 API 场景不是瓶颈。更重要的是:
维度 | Rust | C#/.NET |
|---|---|---|
替代 Python 的层面 | 运行时基础设施(网关、路由、代理) | 企业应用全栈(推理+编排+业务) |
核心优势 | 极致性能、内存确定性、无 GC | 开发效率、企业生态、Azure 集成 |
与 Python 的关系 | Python 退居"插件层"(Sidecar) | Python 可能根本不出现在架构中 |
适用场景 | 高并发 I/O、边缘计算、Serverless | 企业业务系统、Azure 云原生、合规场景 |
学习曲线 | 陡峭(所有权系统) | 平缓(.NET 开发者可直接上手) |
部署形态 | 单二进制,<10MB | 运行时依赖,但容器化/云原生支持成熟 |

过去十年,AI 领域发生过两次基础设施迁移:
现在正在发生第三次:AI 工具链的运行时,正在从 Python 向 Rust 和 C# 分层迁移。
但不是 Python 不行了,而是 AI 的规模上来了之后,Python 作为"全能胶水"的物理极限到了。就像 JavaScript 在浏览器端的物理极限到了之后,WebAssembly 出现了——不是因为 JS 不好,是因为场景变了。
Rust 抢的是"运行时管道":网关、路由、代理、记忆引擎、知识图谱检索——这些高频、低延迟、内存敏感的组件,Python 的 GIL 和 GC 是结构性瓶颈。
C# 抢的是"企业应用栈":在 .NET/Azure 生态中,Microsoft Agent Framework 提供了完整的 AI 能力,企业不需要为了 AI 引入 Python 技术栈,避免了架构割裂和运维复杂度。
Python 不会消失,但它的角色正在被重新定义——从"AI 基础设施的默认选择"变成"特定层的选择":模型训练、数据科学、快速原型、用户自定义插件。
这个演变不是"消灭 Python",而是让每一层用对材料。


LiteLLM 的 0.05ms 和 31.7MB 不是一个孤立的数据点,它是一个信号:当 AI 从实验走向生产,它脚下的地板得换材料了。
Python/TypeScript 搭了脚手架,Rust 浇了地基,C# 盖了楼。
三条路径不是互斥,而是分层协作:
未来的 AI 基础设施,不是"谁替代谁"的单选题,而是"谁该在哪一层"的分层架构。认清每一层的核心矛盾,选择最合适的材料,才是工程的本质。

参考链接