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.