捕蛇者说

Ep 40. Rust 和 PyO3:让 Python 再次伟大 🦀 ❤️ 🐍


Listen Later

嘉宾

Messense

主播
  • laixintao
  • 小白
  • Adam Wen
  • laike9m
  • 链接
    • PyO3

    • 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 GIL

      • pybind11 — Seamless operability between C++11 and Python

      • Cython

      • 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

      • Kiwi 浏览器

      • 爱发电上赞助

        ...more
        View all episodesView all episodes
        Download on the App Store

        捕蛇者说By pythonhunter

        • 4.3
        • 4.3
        • 4.3
        • 4.3
        • 4.3

        4.3

        29 ratings


        More shows like 捕蛇者说

        View all
        疯投圈 by 黄海、Rio

        疯投圈

        116 Listeners

        声东击西 by ETW Studio

        声东击西

        323 Listeners

        三五环 by 刘飞Lufy

        三五环

        43 Listeners

        忽左忽右 by JustPod

        忽左忽右

        462 Listeners

        What's Next|科技早知道 by 声动活泼

        What's Next|科技早知道

        176 Listeners

        科技乱炖 by DAO

        科技乱炖

        25 Listeners

        硅谷101 by 硅谷101

        硅谷101

        186 Listeners

        硅谷101|中国版 by 泓君Jane

        硅谷101|中国版

        56 Listeners

        东亚观察局 by 东亚观察局

        东亚观察局

        207 Listeners

        中间地带 by 海博

        中间地带

        35 Listeners

        商业就是这样 by 商业就是这样

        商业就是这样

        285 Listeners

        半拿铁 | 商业沉浮录 by 潇磊&刘飞

        半拿铁 | 商业沉浮录

        314 Listeners

        起朱楼宴宾客 by 大卫翁

        起朱楼宴宾客

        52 Listeners

        边角聊 by Leftover Talk

        边角聊

        45 Listeners

        十字路口Crossing by Koji

        十字路口Crossing

        3 Listeners