Repolode
pola-rs

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. 1

    Install Polars for Python with pip

    pip install polars
  2. 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

#dataframe#query-engine#rust#python#data-processing#arrow#columnar#analytics#dataframe-library#dataframes

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