Narwhals is an extremely lightweight and extensible compatibility layer between dataframe libraries! - Full API support: cuDF, Modin, pandas, Polars, PyArrow - Interchange-level support: Ibis, Vaex, anything else which implements the DataFrame Interchange Protocol Seamlessly support all, without depending on any! - Just use a subset of the Polars API, no need to learn anything new - Zero dependencies, Narwhals only uses what the user passes in so your library can stay lightweight - Separate lazy and eager APIs, use expressions - Support pandas' complicated type system and index, without either getting in the way - 100% branch coverage, tested against pandas and Polars nightly builds - Negligible overhead, see overhead - Let your IDE help you thanks to full static typing, see typing - Perfect backwards compatibility policy, see stable api for how to opt-in