순수 Go로 작성된 임베디드형 영구 키-값 데이터베이스로, ACID 트랜잭션과 SSD에 최적화된 설계를 제공합니다.
google/leveldb
Google이 만든 고성능 임베디드 키-값 저장소 라이브러리로, 문자열 키와 값을 정렬된 순서로 저장합니다.
- 스타
- 39,503
- 포크
- 8,230
- 열린 이슈
- 425
- 마지막 커밋
- 13일 전
어떤 프로젝트인가요?
LevelDB는 Google에서 C++로 작성한 임베디드 키-값 저장소입니다. 임의의 바이트 문자열 키를 바이트 문자열 값에 매핑하고 키순으로 데이터를 정렬하므로, 애플리케이션에서 범위를 정방향 또는 역방향으로 순회할 수 있습니다. 서버가 아니라 프로세스에 링크되는 라이브러리이며, 한 번에 하나의 프로세스(멀티스레드일 수 있음)만 특정 데이터베이스를 열 수 있습니다.
API는 Put, Get, Delete를 중심으로 구성되며, 원자적 쓰기 배치와 일관된 읽기를 위한 임시 스냅샷을 제공합니다. 데이터는 기본적으로 Snappy로 압축하며 Zstd도 지원합니다. 파일 접근과 같은 운영체제 상호작용은 호출자가 대체할 수 있는 가상 인터페이스를 거칩니다.
LevelDB는 SQL 데이터베이스가 아니며 인덱스, 관계형 모델 또는 내장 클라이언트-서버 계층을 제공하지 않습니다. 프로젝트는 제한적인 유지보수 모드로 운영되며, 주로 치명적인 버그 수정과 호환성 변경을 받습니다. POSIX 시스템과 Windows에서 CMake로 빌드할 수 있습니다.
핵심 기능
- 01키와 값은 임의의 바이트 배열이며, 키순으로 정렬해 저장합니다.
- 02정렬 순서를 변경할 수 있도록 사용자 지정 비교 함수를 지원합니다.
- 03원자적 쓰기 배치와 임시 스냅샷을 제공합니다.
- 04데이터를 정방향 및 역방향으로 순회할 수 있습니다.
- 05기본적으로 Snappy로 데이터를 압축하며 Zstd도 지원합니다.
- 06가상 인터페이스를 통해 호출자가 운영체제 상호작용 계층을 대체할 수 있습니다.
활용 사례
- C++ 애플리케이션에 고성능 로컬 키-값 캐시나 인덱스를 내장하는 경우.
- 키를 기준으로 범위 검색해야 하는 정렬된 데이터를 저장하는 경우.
- 임베디드 저장소를 기반으로 사용자 지정 스토리지 엔진이나 서버를 구축하는 경우.
빠른 시작
- 1
서브모듈을 포함해 리포지토리를 클론합니다
git clone --recurse-submodules https://github.com/google/leveldb.git - 2
빌드 디렉터리를 만들고 CMake로 구성합니다
mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. - 3
라이브러리를 빌드합니다
cmake --build .
사용 전 알아둘 점
- 특정 데이터베이스에는 한 번에 하나의 프로세스만 접근할 수 있습니다(멀티스레드 실행은 가능할 수 있습니다).
- SQL 데이터베이스가 아니며 클라이언트-서버 지원, 인덱스 또는 관계형 모델이 내장되어 있지 않습니다.
- 리포지토리 유지 관리가 매우 제한적이며, 치명적인 버그와 작동을 중단시키는 문제에 대한 수정만 검토됩니다.
토픽
자주 묻는 질문
- leveldb은(는) 무엇인가요?
- Google이 만든 고성능 임베디드 키-값 저장소 라이브러리로, 문자열 키와 값을 정렬된 순서로 저장합니다. LevelDB는 Google에서 C++로 작성한 임베디드 키-값 저장소입니다. 임의의 바이트 문자열 키를 바이트 문자열 값에 매핑하고 키순으로 데이터를 정렬하므로, 애플리케이션에서 범위를 정방향 또는 역방향으로 순회할 수 있습니다. 서버가 아니라 프로세스에 링크되는 라이브러리이며, 한 번에 하나의 프로세스(멀티스레드일 수 있음)만 특정 데이터베이스를 열 수 있습니다.
- leveldb은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- leveldb은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- leveldb은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. leveldb의 마지막 커밋은 2026년 10월 8일입니다.
- leveldb은(는) 어디에 사용할 수 있나요?
- C++ 애플리케이션에 고성능 로컬 키-값 캐시나 인덱스를 내장하는 경우. 키를 기준으로 범위 검색해야 하는 정렬된 데이터를 저장하는 경우. 임베디드 저장소를 기반으로 사용자 지정 스토리지 엔진이나 서버를 구축하는 경우.
- leveldb는 어떻게 설치하나요?
- 서브모듈을 포함해 리포지토리를 클론합니다: git clone --recurse-submodules https://github.com/google/leveldb.git 빌드 디렉터리를 만들고 CMake로 구성합니다: mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. 라이브러리를 빌드합니다: cmake --build .
- leveldb은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/google/leveldb
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
DuckDB는 별도 서버를 관리할 필요 없이 애플리케이션 내부에서 실행되는 인프로세스 분석용 SQL 데이터베이스입니다.
Rust로 작성된 인프로세스 SQL 데이터베이스로, SQLite의 방언·파일 형식·C API와 호환되며 실험적인 Postgres 프런트엔드를 제공합니다.
SQL을 작성하지 않고도 SQLite 데이터베이스 파일을 만들고, 살펴보고, 편집하고, 쿼리할 수 있는 무료 크로스 플랫폼 시각 도구입니다.
임베디드 복제본, 원격 서버 모드, SQLite 코어 확장을 추가한 오픈소스·오픈 기여 방식의 SQLite 포크입니다.
리버스 엔지니어링과 바이너리 분석을 위한 크로스 플랫폼 hex 에디터로, 파일 구조를 파싱하는 패턴 언어를 제공합니다.