Ep 40. Rust 和 PyO3:让 Python 再次伟大 🦀 ❤️ 🐍
Description
嘉宾
主播
链接
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
What Are Python Wheels and Why Should You Care?
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


![[特别篇06] laixintao 和 Manjusaka 串台「牛油果烤面包」 [特别篇06] laixintao 和 Manjusaka 串台「牛油果烤面包」](https://s3.castbox.fm/36/e3/54/416c3740e607d7941ecb13c1bafa645b98_scaled_v1_400.jpg)














![[特别篇05] Manjusaka 和 laike9m 串台「代码之外」 [特别篇05] Manjusaka 和 laike9m 串台「代码之外」](https://i.typlog.com/pythonhunter/8309736190_9780855.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_fill,w_1920,h_1920/format,jpg)



