39.4k stars · MIT · 1.44.1 on PyPI (2026-08-26) — dated from PyPI per the 'for a Python tool, believe PyPI' rule
A Rust-based dataframe library with a Python interface — multi-core, lazy, and able to work through files larger than memory.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Polars is a table library written in Rust with a Python interface. It uses every processor core, and it can work through a file that is larger than your memory.
Why it matters
A backtest sweep is the same loading and reshaping repeated hundreds of times. Anything that makes one pass three times faster makes the whole afternoon three times shorter. Polars also reads Parquet files well, and Parquet is the sensible format for three years of ticks. It pairs neatly with entry #11. The database holds and summarises the data. Polars does the run-by-run work in memory.
- MIT and mature. Version 1.44.1 was released on 26 August 2026.
- It uses every processor core without you writing anything special for it.
- Lazy mode looks at all your steps before it starts, then skips the work it does not need.
- It is not pandas. Method names and behaviour differ. Expect a day of rewriting and a few surprises.
- Some libraries in ScalpingMate expect a pandas table. You will call
.to_pandas()at the edges, and that copy costs time and memory back. - If your files are small, you will not feel any difference, and you will have spent a day for nothing. Time one real run first.
source venv/bin/activate pip install polars python -c "import polars as pl; print(pl.__version__)"
