【FFI】 Python 侧——用 Rust 扩展 Python 的三种方式
Python 是数据科学最顺手的语言,但纯 Python 跑计算密集型任务慢得离谱。一个斐波那契递归,纯 Python 算 fib(40) 要几十秒。Rust 算同样的东西,毫秒级。问题是怎么让 Python 用上 Rust 的速度?FFI 提供了三条路。 一个例子看清三道门 先用 PyO3 写个最
「2026-08」的文章 清除筛选
Python 是数据科学最顺手的语言,但纯 Python 跑计算密集型任务慢得离谱。一个斐波那契递归,纯 Python 算 fib(40) 要几十秒。Rust 算同样的东西,毫秒级。问题是怎么让 Python 用上 Rust 的速度?FFI 提供了三条路。 一个例子看清三道门 先用 PyO3 写个最
跨语言调用的核心矛盾只有三个:数据类型怎么传、函数怎么调、内存怎么管。前两个靠 ABI 和绑定工具解决,第三个是最难的——GC 语言和手动管理语言各有自己的内存世界观,边界上谁说了算? 两个世界,一个边界 Rust 说:每个值有且仅有一个 owner,owner 离开作用域就 drop。Python
数据中台场景下,不同技术栈的系统怎么用 FFI 共享同一套数据基础设施——为什么微服务不是答案,以及 FFI 桥接方案的实战经验。
你有没有想过,为什么 Python 能调用 C 写的 numpy 而不需要 IPC?为什么 Java 的 JNI 调用一次本地方法,比普通方法调用慢一个数量级?为什么 Rust 的 PyO3 比 ctypes 快? 这些问题的答案都指向同一个概念:FFI(Foreign Function Inter