narwhals-dev/narwhals

Lightweight and extensible compatibility layer between dataframe libraries!

何を解決するか

Narwhals は、開発者がデータフレームに依存しないコードを書けるようにする軽量な互換性レイヤーです。pandas、Polars、cuDF、PyArrow などの複数のデータフレームライブラリのサポートを手動で実装する必要をなくし、単一で統一された API を提供します。

動作方法

Narwhals は from_native を使ってネイティブなデータフレームオブジェクトをラップし、Polars API のサブセットを使って操作を実行できます。操作が定義された後、to_native を使用してオブジェクトを元のライブラリ形式に戻します。このプロセスにより、計算は入力ライブラリのネイティブで行われ、パフォーマンスが維持され、オーバーヘッドは無視できるほど小さくなります。

対象ユーザー

主にデータフレームを消費するライブラリのメンテナーや開発者向けです。依存関係としてライブラリを追加せずに、複数のバックエンドをサポートできます。

特徴

  • 広範な互換性: cuDF、Modin、pandas、Polars、PyArrow をネイティブでサポート。Dask、DuckDB、Ibis、PySpark などはプラグイン経由で遅延のみサポート。
  • 依存関係ゼロ: サポートするデータフレームライブラリに依存しないため、ホストライブラリは軽量のままです。
  • 静的型付け: IDE の補完を支援する完全な静的型付けを提供。
  • パフォーマンス: ネイティブなパフォーマンスを維持しつつ、オーバーヘッドは無視できるほど小さく、100% のブランチカバレッジを確保。
  • 後方互換性: API の安定性を確保するため、厳格なポリシーに従います。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト