Pre-Release of Polars 2.0
Points and comments are a snapshot, not live.
Polars 2.0 release candidate switches streaming engine on by default for large memory and speed gains.
The first release candidate for Polars 2.0 makes the streaming engine the default for all LazyFrame queries, yielding up to 5x performance improvements and lower memory usage. Row order is no longer guaranteed for joins, group_by, and unpivot unless maintain_order=True is set. The update also enforces stricter behavior: is_in rejects lossy type coercions, horizontal concat raises on mismatched lengths instead of padding with null, and casts from strings to dates or integers to enums are removed in favor of dedicated methods. Removed attributes and arguments raise specific typed exceptions with migration hints. The final 2.0 release will follow in coming weeks.
What commenters are saying
Commenters broadly welcome the semver-respecting approach of cleaning up deprecated cruft rather than adding new features. Some praise Polars' stability compared to pandas, though others find the API more verbose than SQL or R's dplyr. A few note that Polars has frequently deprecated features in minor releases, which can be disruptive. The streaming-engine default sparks discussion: one commenter questions whether streaming might be slower than batch processing; another clarifies that the engine processes data in cached batches (morsels) and does not hold the full dataset in memory, contrasting with a naive online-streaming model.