narwhals-dev/narwhals
Lightweight and extensible compatibility layer between dataframe libraries!
解决的问题
Narwhals 是一个轻量级的兼容层,允许开发者编写与数据框无关的代码。它通过提供单一、统一的 API,消除了库作者手动实现对多个数据框库(如 pandas、Polars、cuDF 和 PyArrow)支持的需要。
工作原理
Narwhals 使用 from_native 包装原生数据框对象,并允许用户使用 Polars API 的子集执行操作。一旦操作定义完成,使用 to_native 将对象返回到其原始库格式。此过程确保计算保持在输入库的原生环境中,从而维持性能,且开销可忽略不计。
适用人群
主要面向消费数据框的库的维护者,使他们能够在不添加依赖项的情况下支持多种后端。
特性亮点
- 广泛兼容:原生支持 cuDF、Modin、pandas、Polars 和 PyArrow,通过插件支持 Dask、DuckDB、Ibis、PySpark 等,仅支持延迟模式。
- 零依赖:该库不依赖于其支持的数据框库,保持宿主库轻量。
- 静态类型:提供完整的静态类型支持,帮助 IDE 提供更好的智能提示。
- 高性能:在保持几乎可忽略的开销的同时,确保 100% 的分支覆盖率。
- 向后兼容:遵循严格的策略,确保 API 稳定性。
相关
- 项目
- 项目
- 项目
- 项目
- 项目