Calling Rust from Python/PyPy using CFFI (C Foreign Function Interface) This article demonstrates how to create a library in Rust and call it from Python (both CPython and PyPy) using the C Foreign Function Interface (CFFI), which offers lower call overhead than ctypes and works with both Python implementations. The author recommends installing Rust via multirust for managing different Rust versions and compatibility testing. The demo involves compiling a Rust file (treble.rs) into a shared library (libtreble.dylib) and then calling it from a Python test script. This is a small demo of how to create a library in Rust and call it from Python both CPython and PyPy using the CFFI instead of ctypes . Based on http://harkablog.com/calling-rust-from-c-and-python.html dead which used ctypes CFFI is nice because: - Reads C declarations parses headers - Works in both CPython and PyPy included with PyPy - Lower call overhead than ctypes from either of: brew install rust - Multirust I recommend installing Rust via multirust so that you can compile projects that use unstable features core as well as testing for Rust 1.0,1.1, etc backwards compatibility. The per-directory override mechanism is especially nice. rustc treble.rs This will create a libtreble.dylib python test.py