4 个版本
0.2.2 | 2023年3月25日 |
---|---|
0.2.1 | 2022年6月7日 |
0.2.0 | 2019年1月10日 |
0.1.0 | 2018年11月24日 |
#8 in #cbindgen
每月 25 次下载
16KB
238 行
cargo-wheel
关于
使用 milksnake 和 cbindgen 生成 Rust crate 的 Python 绑定。
弃用
milksnake 在过去一年中没有太多更新,似乎已被 maturin 取代。我不再推荐使用此 crate。
快速开始
编辑您的 Cargo.toml
并将 crate 类型设置为 cdylib
[lib]
crate-type = ["cdylib"]
在您的库中导出函数或数据结构以使它们对 C
可见。
#[no_mangle]
pub extern fn greet() {
println!("Hello from Rust");
}
调用 cargo wheel
来调用 cbindgen 并设置 Python 包。
cargo wheel
在生成的 __init__.py
中使用 cffi
来向 Python 暴露功能
from test_lib._native import ffi, lib
def greet():
lib.greet()
为什么您想使用 cargo-wheel
为了在创建 Rust crate 的 Python 绑定时节省样板代码
为什么您不想使用 cargo wheel
您想从您的 setup.py
而不是反过来调用 cargo
的场景。例如,如果您想在现有的 wheel 中用 Rust 替换 Python 代码。
依赖项
~51MB
~1M SLoC