---
id: narwhals
version: "2.24.0"
license: MIT
license_treatment: permissive
maintenance: active
---
# narwhals — Extremely lightweight compatibility layer between dataframe libraries
License: permissive · Maintenance: active · Popularity: top 1,000 on PyPI
## Install
pip install narwhals
uv add narwhals
poetry add narwhals
## Description
# Narwhals
[](https://badge.fury.io/py/narwhals)
[](https://pepy.tech/project/narwhals)
[](https://peps.python.org/pep-0740/)
[](https://pypi.org/project/narwhals)
[](https://insights.linuxfoundation.org/project/narwhals-dev-narwhals)
[](https://securityscorecards.dev/viewer/?uri=github.com/narwhals-dev/narwhals)
Extremely lightweight and extensible compatibility layer between dataframe libraries!
- **Full API support**: cuDF, Modin, pandas, Polars, PyArrow.
- **Lazy-only support**: Daft, Dask, DuckDB, Ibis, PySpark,...
## AI interpretation — verify before relying
Narwhals is a zero-dependency compatibility layer that lets you write dataframe code once and run it against pandas, Polars, DuckDB, Dask, PySpark, cuDF, Modin, PyArrow, and other libraries without importing them.
Verdict: Narwhals is a production-ready (Development Status 5), actively maintained library with no security vulnerabilities, zero dependencies, and full type hints. It solves a genuine pain point for library maintainers needing dataframe agnosticism without bloating their dependency tree. The top-1000 popularity tier and adoption by major projects (altair, bokeh, lightgbm, pandera) validate its utility.
[View on SkillFed](https://skillfed.io/packages/narwhals) · [View on PyPI](https://pypi.org/project/narwhals/)