捕蛇者说

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 DAO

        津津乐道

        119 Listeners

        疯投圈 by 黄海、Rio

        疯投圈

        107 Listeners

        声东击西 by ETW Studio

        声东击西

        285 Listeners

        科技乱炖 by DAO

        科技乱炖

        24 Listeners

        忽左忽右 by JustPod

        忽左忽右

        442 Listeners

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

        What's Next|科技早知道

        175 Listeners

        硅谷101 by 硅谷101

        硅谷101

        163 Listeners

        硅谷101|中国版 by 泓君Jane

        硅谷101|中国版

        50 Listeners

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

        商业就是这样

        273 Listeners

        知行小酒馆 by 有知有行

        知行小酒馆

        299 Listeners

        晚点聊 LateTalk by 晚点 LatePost

        晚点聊 LateTalk

        23 Listeners

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

        半拿铁 | 商业沉浮录

        289 Listeners

        高能量 by 李翔李翔

        高能量

        27 Listeners

        42章经 by KaiQu

        42章经

        9 Listeners

        十字路口Crossing by Koji

        十字路口Crossing

        2 Listeners