Polars vs Pandas, PyO3 vs Cython: Rust Is Rewriting Python's Fast Path

If you list the tools that made Python feel fast lately, a pattern jumps out. The dataframe library everyone is switching to, Polars, is written in Rust. The linter that replaced flake8, Ruff, is Rust. The packaging tool eating pip and virtualenv, uv, is Rust. Pydantic v2 rewrote its core in Rust; Hugging Face’s tokenizers is Rust; orjson is Rust; even cryptography moved its guts to Rust years ago. Python isn’t going anywhere — it’s still the interface. But the engine underneath the performance-critical parts is quietly being rewritten in Rust. This post looks at that shift from two angles I’ve actually measured: Polars vs Pandas (the library you use) and PyO3 vs Cython (how you’d build such a library yourself). All numbers below I ran on one 8-core Linux x86-64 box. ...

July 8, 2026 · 7 min