Skip to content
Hacker News front page

Polars 2.0 RC: streaming engine is now the default, bringing big memory and speed gains

Pre-Release of Polars 2.0

Polars dropped the first release candidate for 2.0, with the stable release coming in a few weeks. This major version isn't about new features—it cleans up old design decisions and changes defaults. The biggest shift: LazyFrame.collect now uses the streaming engine by default, which the team says is roughly 5x faster overall with much lower memory usage. The trade-off is that row order is no longer guaranteed for joins, group_by, and unpivot unless you set maintain_order. 2.0 also gets stricter: is_in on mismatched types that would lose precision now raises an error, horizontal concat with mismatched lengths fails instead of silently padding nulls, and many implicit casts are removed—string-to-date now requires .str.to_date(), and enum/integer conversions need dedicated methods. Removed APIs raise typed exceptions with migration hints, making it easier for both humans and AI agents to update code.

Read the original ↗Export Markdown