Ep 40. Rust 和 PyO3:让 Python 再次伟大 🦀 ❤️ 🐍
Fetch error
Hmmm there seems to be a problem fetching this series right now. Last successful fetch was on September 05, 2025 15:35 ()
What now? This series will be checked again in the next day. If you believe it should be working, please verify the publisher's feed link below is valid and includes actual episode links. You can contact support to request the feed be immediately fetched.
Manage episode 363209078 series 2513527
嘉宾
主播
链接
PyO3 有哪些应用?
- polars: Fast multi-threaded DataFrame library in Rust | Python | Node.js.
- pydantic-core: Core validation logic for pydantic written in Rust.
- cryptography: Python cryptography library with some functionality in Rust.
- orjson: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
PyO3 前身:rust-cpython
Maturin: Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages
PEP 517 – A build-system independent format for source trees
Ruff: An extremely fast Python linter, written in Rust.
typos: Source code spell checker
ChatGPT 写的 Rust 调用 Python C-API 的例子
use std::os::raw::{c_char, c_int};use std::ffi::CString;use libc::{c_double, c_void};#[link(name = "python3.8")]extern "C" {fn Py_Initialize();fn Py_Finalize();fn Py_BuildValue(format: *const c_char, ...) -> *mut c_void;}fn main() {unsafe {// 初始化 Python 解释器Py_Initialize();// 构建一个 Python 元组对象,并打印它let x = 1.23 as c_double;let y = 4.56 as c_double;let format = CString::new("dd").unwrap().as_ptr();let result = Py_BuildValue(format, x, y);let s = CString::from_raw(result as *mut c_char).into_string().unwrap();println!("{}", s);// 关闭 Python 解释器Py_Finalize();}}pyo3-ffi: Python-API bindings for the PyO3 ecosystem
在 PyO3 里通过
allow_threads关掉 Python GILpybind11 — Seamless operability between C++11 and Python
CFFI: C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.
zig cc: a Powerful Drop-In Replacement for GCC/Clang
wechatpy: 微信公众平台第三方 Python SDK
OrbStack: Fast, light, simple Docker & Linux on macOS
FancyWM - a dynamic tiling window manager for Windows 10/11
CSAPP: Computer Systems: A Programmer's Perspective
APUE: Advanced Programming in the UNIX® Environment
提到的读书撕书的灵感来自于:李敖先生
吴恩达 prompt engineering 课程:
ChatGPT Prompt Engineering for Developers
97集单集