Data and databases · Edition No. 15 · 9 Sep 2026

pola-rs/polars

A faster replacement for pandas when the file is large.

← Data and databasesRead the whole edition →
Polars: faster tables in Python. A faster replacement for pandas on large files.

40.1k stars · MIT | 2.0.0 on PyPI, 6 Oct 2026 | [docs.pola.rs](https://docs.pola.rs) · py-2.0.0 (2026-10-06) · Track this in Rising ↗

A faster replacement for pandas when the file is large.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 26 Oct 2026, one day before this check.

Releases100

Latest release py-2.1.0 on 25 Oct 2026.

Maturity90

Public since May 2020, a little over 6 years.

Adoption92

40,211 stars and 3,205 forks.

Activity100

981 commits and 512 new issues in the last 90 days.

Community100

784 contributors. 937 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. No published security advisories.

Licence MIT | 2.0.0: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 15.

▶Repo detailsthe review · specs · pros & cons · install

What it does

Polars is a query engine for tables, written in Rust with a Python interface. It works two ways: step by step, like pandas, or lazily, where the whole chain of steps is examined and optimised before anything runs. Queries are built from composable expressions for filtering, grouping, aggregating and sorting. A streaming mode processes a query in parts, so a file larger than the machine's memory can still be read; you ask for it when collecting the result. It uses the Apache Arrow column format, which lets data be shared with other tools without copying, and it reads Parquet files, the compact column-based format used for large datasets. Bindings exist for Python, Rust, Node.js and R, and there is a SQL interface. It uses every processor core without being asked, and can optionally use an NVIDIA graphics card. It is not a database: there is no server and no storage of its own, and spreading one query across several machines is a separate paid product.

Why it matters

Who it suits. Anyone repeating the same load-and-reshape hundreds of times — a parameter sweep, a backtest, a nightly report — where one pass getting three times faster makes the whole afternoon three times shorter. It also suits anyone whose file no longer fits in memory, because the streaming mode is a smaller change than restructuring the job. Skip it if the files are small, because the difference will not be felt and a day of rewriting buys nothing.

Verdict. Worth a day when the files are genuinely large, and worth nothing when they are not, so time one real run before committing. Note the version: 2.0.0 landed on 6 October 2026, and a first digit that changes usually means some code has to change too, so read the project's upgrade notes rather than bumping the version in place. Expect to call .to_pandas() at the edges where other libraries insist on a pandas table, and that copy costs back some of what was gained. It pairs well with entry #11: the database holds and summarises, this does the run-by-run work in memory.

Stars40.1k
LicenceMIT | 2.0.0 on PyPI, 6 Oct 2026 | [docs.pola.rs](https://docs.pola.rs)
Latestpy-2.0.0 (2026-10-06)
Summary (Key Points)from the README
Key features
  • Multi-threaded, vectorized core: Written in Rust with multi-threaded, vectorized (SIMD) execution.
  • Lazy and eager modes: Both execution styles are supported, with query optimization built in.
  • Streaming for larger-than-RAM data: The streaming engine processes parts of a query in a streaming fashion, so a 250GB dataset might run on a laptop.
  • Expression-based API: Queries are composed from expressions, and lazy queries run in parallel across all available cores.
  • Native extensibility: Custom code can extend Polars through I/O and Expression plugins.
  • Multiple language bindings: Bindings exist for Python, Rust, Node.js, R, and SQL.
  • Optional NVIDIA GPU acceleration: Queries can optionally run on NVIDIA GPUs.
  • Zero-copy data sharing: It uses the Apache Arrow Columnar Format for zero-copy data sharing.
  • Distributed scaling: The README links to a guide for horizontally scaling queries across a cluster.
Ways to install
Platform or methodWhat it needsEffort
Python release (pip install polars)pip and a Python environment; optional dependencies are listed in the User GuideLow
Compile from source (py-polars)The latest Rust compiler, maturin (pip install maturin), and make; release builds take long compile timesHigh
Important
  • Source builds are slow: The make targets range from fast-compiling debug builds to build-dist-release, which the README describes as having extreme compile times.
  • Older CPUs need a flag: Set LTS_CPU=1 when compiling if your CPU lacks support for features such as AVX2, for example CPUs from before 2011.
  • Very large row counts need the advanced guide: Datasets with more than 2^32 (about 4.2 billion) rows require options described in the Installation guide.
  • Apple Silicon under Rosetta is a special case: An x86-64 build of Python on Apple Silicon under Rosetta needs the advanced installation steps.
  • Streaming is opt-in: Larger-than-RAM processing only applies when you call collect(engine='streaming').
  • GPU support is limited to NVIDIA: The README mentions GPU acceleration only for NVIDIA GPUs and describes it as optional.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • MIT, mature and fast-moving, with version 2.0.0 published on 6 October 2026.
  • It uses every processor core with no special code, and the streaming mode reads files larger than memory.
  • Lazy mode inspects the whole chain of steps before starting, then skips work it does not need.
Watch for
  • It is not pandas. Method names and behaviour differ, so expect a day of rewriting and some surprises.
  • Some libraries demand a pandas table, and converting costs time and memory back.
  • A major version arrived this month. Pin the version and read the upgrade notes before moving old code.
Install
source venv/bin/activate
pip install polars
python -c "import polars as pl; print(pl.__version__)"
Screenshots
pola-rs/polars: GitHub preview card

On Stack Radar: Data & Research › Data Enrichment & Collection › Data Connectors.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.