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 の安定性を確保するため、厳格なポリシーに従います。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト