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 안정성을 보장하기 위해 엄격한 정책을 따릅니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트