{"full_name":"pola-rs/polars","owner":"pola-rs","name":"polars","url":"https://github.com/pola-rs/polars","description":"Extremely fast Query Engine for DataFrames, written in Rust","homepage":"https://docs.pola.rs","topics":[],"language":"Rust","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/83768144?v=4","created_at":"2020-05-13T19:45:33Z","pushed_at":"2026-11-10T09:39:39Z","metrics":{"stars":40298,"forks":3234,"watchers":215,"issues":13639,"prs":16903,"releases":272,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":9,"forks":4,"base_day":"2026-11-09"},"week":{"stars":48,"forks":19,"base_day":"2026-11-03"},"month":{"stars":213,"forks":73,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-06","2026-09-07","2026-09-08","2026-09-09","2026-09-10","2026-09-11","2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[39658,39659,39677,39684,39694,39704,39706,39713,39720,39725,39736,39745,39760,39779,39788,39813,39827,39841,39848,39854,39860,39869,39870,39881,39888,39897,39903,39912,39915,39914,39913,39946,39986,40018,40036,40085,40098,40108,40117,40080,40093,40100,40106,40115,40125,40134,40148,40156,40170,40180,40197,40205,40219,40226,40226,40236,40243,40247,40250,40255,40289,40298],"forks":[3082,3085,3085,3088,3088,3093,3093,3097,3098,3102,3104,3104,3109,3113,3116,3122,3121,3122,3127,3128,3129,3131,3135,3139,3139,3142,3145,3149,3152,3152,3154,3155,3154,3158,3158,3161,3164,3167,3167,3169,3174,3179,3182,3185,3186,3190,3194,3198,3201,3204,3205,3206,3205,3206,3210,3209,3210,3213,3215,3221,3230,3234],"watchers":[220,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,220,220,220,220,220,220,220,220,220,220,220,220,221,221,221,220,220,220,215,215,215,215,215,216,215,215,215,215,215,215,215],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{},"same_owner":[],"issues":[{"number":20947,"title":"Tracking issue for the new streaming engine","comments":95,"created_at":"2025-01-28T09:49:07Z"},{"number":3520,"title":"Support HDF5 reading/writing (with optional dependencies)","comments":51,"created_at":"2022-05-28T05:44:52Z"},{"number":7852,"title":"write_database is Significantly slower than .to_pandas().to_sql()","comments":42,"created_at":"2023-03-29T12:34:54Z"},{"number":12165,"title":"Support of vertical fold and scan","comments":37,"created_at":"2023-11-01T13:41:37Z"},{"number":12049,"title":"Improve and expand Expr.rolling()","comments":32,"created_at":"2023-10-26T13:39:22Z"},{"number":15443,"title":"Support for uint256/int256","comments":31,"created_at":"2024-04-02T14:44:58Z"},{"number":8976,"title":"Sliding window for pl.Expr.over function","comments":31,"created_at":"2023-05-22T12:52:47Z"},{"number":3933,"title":"Row-wise random sampling in LazyFrames","comments":25,"created_at":"2022-07-07T23:01:36Z"}],"discussions":[],"latest_release":{"name":"Python Polars 2.1.0","tag":"py-2.1.0","published_at":"2026-10-25T18:24:39Z","body":"## 💥 Breaking changes\n\n- Disallow mixed string \\<=> numeric arithmetic in eager (#30071)\n\n## 🚀 Performance improvements\n\n- Limit the memory of buckets sorted ahead in the sort flush (#30297)\n- Make file readers wait for spills while over the memory budget (#30296)\n- Count unspilled frames in the memory estimate right away (#30295)\n- Simplify more boolean expressions and drop redundant null checks (#30293)\n- Wait for spills while over the out-of-core memory budget (#30294)\n- Lower the default out-of-core prefetch fraction to 0.5 (#30292)\n- Aggregate unique and n\\_unique in the streaming group-by itself (#30281)\n- Return freed memory to the OS right away while out-of-core data is spilled (#30280)\n- Gather `List(Array)` and `Array` columns without per-row slices (#30278)\n- Evaluate the streaming window node out of core (#30282)\n- Avoid deep copies when building a DataFrame from flat dataclasses (#30275)\n- Sort the window partitions by each order key instead of their row encoding (#30277)\n- Scan the haystack for a single needle in `is_in` (#30276)\n- Prefer fixed-width columns when only the row count is needed (#30274)\n- Native gather for List arrays (#30019)\n- Evaluate windows in filter predicates in the streaming window node (#30272)\n- Don't busy-wait in RAYON.block\\_on (#30259)\n- Encode nested Parquet levels directly from the level buffers (#30251)\n- Reduce memory of CSV scans on wide rows (#30165)\n- Avoid quadratic JSON serialization of nested lists and maps (#30203)\n- Skip the gather when exploding lists without nulls (#30234)\n- Speed up writing nested Parquet columns (#30245)\n- Don't keep whole parquet string dictionaries alive for a few selected rows (#30248)\n- Set default spill compression level to 1 (#30237)\n- Reuse zstd contexts in compression and avoid memcpys (#30233)\n- Remove repeated and scalar ordering keys before the sort rewrites (#30231)\n- Remove repeated keys from by's (#30095)\n- Keep only one guessed unique key per join order leaf (#30191)\n- Don't let extra join keys shrink an estimate once one key is unique (#30190)\n- Reduce binary size of asof join with `by` keys (#30192)\n- Reduce binary size of SQL visitors and parallel group-by collect (#30171)\n- Push as-of join key filters to the right input (#30123)\n- Drop null as-of right keys with a parallel filter before the join node (#30125)\n- Keep as-of nearest join state small (#30126)\n- Explode lists in group\\_by aggregations without a per-group apply (#30020)\n- Streaming OOC group-by with shuffles (#29911)\n- Drop scalar ordering keys in the optimizer (#30063)\n- Merge union inputs that scan files of the same kind into one multi-file scan (#30056)\n- Use the streaming scalar window for std, var and combined reductions in `over` (#30066)\n- Limit the bytes of local CSV and NDJSON files read at once in multi-file scans (#30055)\n- Check the matched flag of join keys in the table entry before the bitset (#30067)\n- Track matched build rows of all join tables in a bitset (#30050)\n- Add dedicated list gather kernels (#30049)\n- Emit unmatched build rows of single-key joins in row order (#30037)\n- Use `TopK` for sorts sliced at a nonzero offset (#29989)\n- Add constant folding for more datetime ops (#30016)\n- Rewrite the sum of a column plus a literal to a sum and a count of the column (#30011)\n- Push predicates through order-keeping columns (#30007)\n- Fix dead early exit in `coalesce` (#30013)\n- Count distinct non-null values in SQL with one group-by in the streaming engine (#30009)\n- Skip parquet row groups with the running top-k threshold (#30006)\n- Keep decompressed plain string pages as the string data buffer (#29984)\n- Fix some in-memory filter regressions (#29988)\n- Decompress snappy and zstd parquet pages without zeroing the buffer (#29980)\n- Speed up `str.len_chars` (#29972)\n- Speed up `str.replace` for patterns that end in `.*$` (#29971)\n- Use the Parquet string prefilter for literal `str.contains` and SQL `LIKE` (#29953)\n- Keep single-chunk output when filtering wide"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}