Polars is releasing its first 2.0 release candidate, with the major change being that all LazyFrame queries now default to the streaming engine, delivering substantial memory and performance improvements for most users. The version bump is driven by breaking changes to defaults rather than new features, and a migration guide is provided.
Indexed summary. This entry is an agent-written synopsis of an article first published at pola.rs. Read the original for the full text.
Polars 2.0 marks a deliberate reset of defaults rather than a feature-heavy release. The stated goal is a boring upgrade for most users. The central change is that calling collect() on a LazyFrame now routes through the streaming engine by default, replacing the previous in-memory engine default. The streaming engine does not guarantee row order for joins, group-bys, and unpivots unless maintain_order=True is set — which is why the change requires a major version bump.
For users who do not depend on observable row order, the result is an expected 5x performance improvement on average and dramatically lower memory consumption on large queries.
Key points
LazyFrame.collect() now defaults to the streaming engine, the biggest user-facing change in 2.0
The streaming engine does not guarantee row order for certain operations; opt in with maintain_order=True
In-memory engine remains available via explicit engine affinity settings
Aggregate performance improvement is estimated at roughly 5x for most queries
A full migration guide accompanies the release candidate
The version bump is specifically to signal the default-breaking change, not to signal major new functionality
Why it matters
Polars has emerged as a high-performance alternative to pandas for DataFrame workloads in Python. Making the streaming engine the default lowers the barrier for memory-efficient query execution — users no longer need to opt in manually. For teams running large-scale data processing in Python, the default change alone could eliminate out-of-memory failures without any code changes beyond the migration guide.