A Spark accelerator that runs Spark SQL and DataFrame operators on Apache Arrow columnar data via a Rust engine built on DataFusion, with no code changes.
pola-rs/polars
A fast DataFrame query engine written in Rust, with Python, Node.js, R, Rust and SQL bindings.
Open-source alternative to:pandas
- Stars
- 40,278
- Forks
- 3,228
- Open issues
- 2,953
- Last commit
- 11 hours ago
What is it?
Polars is an analytical query engine for DataFrames, written in Rust. It offers both lazy and eager execution, and lazy queries are optimized before they run across all available CPU cores. Its streaming engine can process datasets larger than available memory by working on parts of a query at a time.
The API is built from composable expressions, so transformations such as filtering, grouping, aggregation and sorting can be chained into a single query. Data is stored in the Apache Arrow columnar format, which allows zero-copy sharing with other Arrow-based tools. Extensions are possible through I/O and expression plugins, and an optional GPU backend accelerates queries on NVIDIA hardware.
Bindings are available for Python, Rust, Node.js, R and SQL, and the project provides installation via pip, npm, crates.io and R's package system.
Key features
- 01Lazy and eager execution with built-in query optimization
- 02Streaming engine for datasets larger than available RAM
- 03Multi-threaded, vectorized execution
- 04Expression-based API for composing complex queries
- 05Apache Arrow columnar format for zero-copy data sharing
- 06Optional NVIDIA GPU acceleration and custom I/O or expression plugins
Use cases
- Analyzing large Parquet or CSV files that do not fit in memory on a single machine
- Replacing slower pandas workflows with faster grouped aggregations and filters
- Building data pipelines in Rust or Node.js that need a DataFrame engine
- Running scalable query workloads that can be extended to a cluster
Quick start
- 1
Install Polars for Python with pip
pip install polars - 2
Run a lazy query on a Parquet file (replace orders.parquet with your file)
Things to know
- Python install is the simplest path; building from source needs the Rust toolchain and maturin.
Topics
FAQ
- What is polars?
- A fast DataFrame query engine written in Rust, with Python, Node.js, R, Rust and SQL bindings. Polars is an analytical query engine for DataFrames, written in Rust. It offers both lazy and eager execution, and lazy queries are optimized before they run across all available CPU cores. Its streaming engine can process datasets larger than available memory by working on parts of a query at a time.
- Is polars free to use? What license does it have?
- polars is open source under the MIT license. Check the license terms before using it in commercial products.
- Is polars still maintained?
- Actively maintained. The last commit to polars was on Nov 7, 2026.
- What can I use polars for?
- Analyzing large Parquet or CSV files that do not fit in memory on a single machine Replacing slower pandas workflows with faster grouped aggregations and filters Building data pipelines in Rust or Node.js that need a DataFrame engine Running scalable query workloads that can be extended to a cluster
- How do I install polars?
- Install Polars for Python with pip: pip install polars Run a lazy query on a Parquet file (replace orders.parquet with your file)
- Where can I get polars?
- The source code and installation instructions are on GitHub: https://github.com/pola-rs/polars
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
GPU-accelerated DataFrame library for tabular data, with a pandas-like API and a zero-code-change pandas accelerator.
Trino is a distributed SQL query engine for running fast analytical queries across big data sources.
A Rust-backed Bloomberg client with Python and Node.js bindings for reference, historical, intraday, streaming and BQL data requests.
A drop-in Apache Spark replacement written in Rust that runs existing PySpark code over the Spark Connect protocol.
Python DataFrame library for lazily exploring and visualizing billion-row tabular datasets without loading them fully into memory.