Polars 2.0 is a major version bump for the Rust-based DataFrame library, but the version number undersells the engineering payload. The headline move is flipping the streaming engine on by default — calling collect on a LazyFrame now routes through streaming, yielding large memory and performance improvements on most queries. The tradeoff: row-order is no longer guaranteed for joins, groupby, and unpivot unless you explicitly opt in with maintainorder=True. That's a breaking contract change, hence the major version. Out-of-core (spill-to-disk) support ships enabled by default, triggering at roughly 80% RAM utilization with a 64GB disk budget. Sort, window functions, and many expressions can now spill; joins and groupby spill support is on the roadmap but not yet landed. For practitioners working with datasets that flirt with memory limits, this is the difference between a crashed pipeline and a completed one. The SQL story is where Polars makes its most aggressive public claim. Running TPC-H and TPC-DS derived benchmarks on both a 16-vCPU c7a.4xlarge (32GB RAM) and a 192-vCPU c7a.metal (384GB RAM), Polars SQL leads DuckDB 1.5.6, DuckDB 2.0 alpha, and DataFusion 54.0.0 on all but one benchmark configuration. Each query ran five times hot, best-of-five, separate process per query, file cache cleared between engines. DataFusion timed out or OOM'd on several queries; those were excluded for all engines. The team published the full benchmark repo at github.com/pola-rs/polars-2.0-benchmark and explicitly invites replication. The scaling numbers tell a nuanced story. Moving from 16 to 192 vCPUs at SF100, Polars gets 3.8× faster on TPC-H and 2.2× on TPC-DS (by sum), versus 3.2×/1.9× for DuckDB 1.5.6 and 2.2×/1.5× for DuckDB 2.0 alpha. But at SF10, the extra cores actually hurt Polars — it's flat on TPC-H and 1.8× slower on TPC-DS, while DuckDB still improves. The team has diagnosed a constant overhead at high thread counts and flags a fix for the next release. Polars capped at 32 threads on the 192-vCPU machine is competitive or winning everywhere. A new Map dtype lands as a first-class citizen, replacing the old workaround of reading Arrow MapType as List(Struct). Dedicated expressions for key lookups, iteration, and dictionary-like methods ship with it. Stricter type enforcement rounds out the release: Polars now fails faster on schema mismatches, catching errors at query-plan compilation rather than 20 minutes into execution. The team explicitly frames this as an AI-development accelerant — agents can call collectschema() to validate structure without materializing data. The roadmap signals are clear: out-of-core joins and groupby, scaling fixes at high core counts, GeoPolars support, and Polars Cloud positioning as the fastest distributed engine. This is an open-source project with a commercial cloud arm, and 2.0 is the technical foundation that makes both the open and commercial products more credible.