프로젝트 소개

SQLiteVecData는 SQLiteData와 sqlite-vec 사이의 Swift 통합을 제공하여, 개발자가 vec0 가상 테이블을 생성하고 벡터 유사도 쿼리를 전적으로 Swift에서 수행할 수 있게 합니다. Apple 플랫폼에서는 `loadSQLiteVecExtension`을, 비 Apple 플랫폼에서는 `registerSQLiteVecAutoExtension`을 통해 지원합니다. 주요 기능은 다음과 같습니다: - **vec0 테이블 생성**: 벡터 열(예: `FLOAT[1536]`)을 가진 가상 테이블을 정의하고, `Vec0` 프로토콜을 사용하여 Swift에서 모델링합니다. - **Match 쿼리**: `match`를 사용하여 벡터 유사도로 행을 필터링하고, `distance` 열로 정렬하여 최근접 이웃 결과를 얻습니다. - **거리 함수**: select 절에서 직접 코사인 또는 기타 거리를 계산합니다. - **벡터 반복**: `vecEach()`를 사용하여 벡터 요소를 반복함으로써 상관 하위 쿼리, 필터링, 집계를 가능하게 합니다. - **EmbeddingVector**: 최신 Apple 플랫폼(iOS 26+, macOS 26+ 등)을 위한 고정 길이, Hashable, Codable 배열 타입으로, vec0 테이블에 저장하거나 쿼리 바인딩으로 사용할 수 있습니다. - **테스트 지원**: Linux 및 Apple 플랫폼을 위한 Swift Testing 트레이트가 포함된 `SQLiteVecDataTestSupport`를 제공합니다. - **성능**: 최적화된 벡터 연산을 위한 NEON(ARM) 및 AVX(x86) SIMD 트레이트가 함께 제공됩니다. 이 패키지는 또한 SQLiteData를 직접 사용하지 않는 사람들을 위한 독립형 쿼리 헬퍼 세트인 `StructuredQueriesSQLiteVecCore`를 내보냅니다. 설치는 Swift Package Manager 또는 Xcode를 통해 이루어지며, 라이브러리는 MIT 라이선스입니다.