Show GN: 온디바이스 벡터 데이터베이스를 C로 만들었습니다 (LSM-tree + HNSW)
요약
사용자가 온디바이스 RAG 및 시맨틱 검색을 목표로, C 언어로 작성된 임베디드 벡터 데이터베이스 'livero'를 공개했습니다. 이 라이브러리는 LSM-tree 스토리지와 HNSW 인덱스를 결합하여 외부 의존성 없이 기기 자체에서 작동하는 것이 특징입니다.
핵심 포인트
- C 언어로 작성되어 외부 의존성이 없어 임베디드 환경에 최적화됨.
- LSM-tree 스토리지와 HNSW 인덱스를 결합하여 벡터 검색 기능을 제공함.
- ARM NEON SIMD를 활용한 거리 커널로 온디바이스 성능을 확보함.
- 온디바이스 RAG 및 시맨틱 검색 등 엣지 디바이스 애플리케이션에 적합함.
대학 1학년이고, 데이터베이스 엔진이 실제로 어떻게 동작하는지 궁금해서 4개월 전에 직접 만들어보기 시작했습니다. 처음엔 학습용 LSM-tree 키-값 스토어였는데, 벡터 레이어를 붙이고 HNSW 인덱스를 얹으면서 온디바이스 벡터 데이터베이스가 됐습니다.
전부 C로 작성했고, 외부 의존성은 없습니다. 서버 없이 앱에 링크해서 기기 안에서 바로 도는 임베디드 라이브러리라, 온디바이스 RAG나 시맨틱 검색을 목표로 하고 있습니다.
주요 구성:
- LSM-tree 스토리지 (WAL + memtable + SST + 컴팩션)
- HNSW 벡터 인덱스 (근사 최근접 검색)
- ARM NEON SIMD 거리 커널 (float32 / int8, L2 / dot)
- 문자열 기반 쿼리 API (필터가 결합된 벡터 검색, FFI 바인딩 용이)
현재 기능은 기본적인 CRUD와 query기능이 있습니다.
아직 v1이라 최적화나 채울 부분이 남아 있고(x86 지원, 동시성, 모바일 바인딩 등), 한계와 로드맵은 README에 적혀있습니다.
이름은 livero (libero, 이탈리아어로 "자유로운" + vector)입니다. 서버로부터, 의존성으로부터 자유롭고, 기기 위에서 자유롭게 도는 벡터 스토어라는 뜻으로 지었습니다:)
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기