// 아키텍처
세션 로그가 곧 데이터베이스의 WAL입니다.
VHDB는 smart-workbench가 이미 쓰는 원장과 플러그인이 직접 남기는 로그를 읽습니다. 세그먼트, 인덱스, 매니페스트는 모두 파생물이라 지워도 로그만으로 다시 만들어집니다.
01
로그가 곧 WAL
smart-workbench가 쓰는 sessions/*.jsonl을 읽기 전용으로 읽습니다. 파생 파일은 지워도 로그에서 똑같이 다시 만들어집니다.
02
불변 파일 + 원자적 교체
체크섬이 붙은 세그먼트를 먼저 쓰고 MANIFEST를 원자적으로 바꿔야 새 상태가 보입니다. 어느 시점에 죽어도 같은 바이트를 다시 읽어 같은 결과에 도달합니다.
03
검색은 인덱스, 정답은 전수 조사
빠른 경로가 모든 후보를 하나씩 점수 낸 결과와 같은 문서, 같은 순서, 같은 점수 비트인지 무작위 데이터로 계속 검사합니다.
04
같은 엔진, 세 곳
같은 엔진 크레이트가 Claude Code 플러그인 안의 WASM, 개인용 데몬, 팀 서버로 돕니다.
| 크레이트 | 역할 | 배포 |
|---|---|---|
| vhdb-core | 엔진: 세그먼트, 블룸 필터가 붙은 인덱스 SST, MANIFEST, 인제스트, 컴팩션, 검색(VQL, BM25), 복구, 파티션·계층·벡터, 이력 로직. | 라이브러리 |
| vhdb-cli | vhdb 명령: stat, ingest, search, history, verify, compact, rebuild, dump, archive. | 서버 패키지에는 vhdbctl이라는 이름으로 설치 |
| vhdb-wasm | 엔진을 WASM 하나로. node에서 파일 접근을 제공하는 호스트 포함. | vhdb-plugin에 engine/vhdb.wasm으로 포함 |
| vhdbd | 프로젝트 디렉터리당 하나의 로컬 데몬. 쓰기 잠금을 잡고 로그 꼬리를 따라가며 유닉스 소켓으로 답합니다. | cargo build --release -p vhdbd |
| vhdb-server | 팀 서버: 인제스트·컴팩션, /v1/* API, 계정·프로젝트·토큰 관리, 감사 로그. | .deb, .rpm, tar.gz (x86_64, aarch64) |
코어의 외부 의존성은 serde, serde_json, regex-lite, miniz_oxide뿐이고, 서버만 TLS와 해시를 더 씁니다. 최소 Rust 버전은 1.85입니다.
저장되는 것
레코드는 원장의 한 줄입니다. 세션 id, 턴 번호, 시각, 종류, 본문과 file, commit 같은 선택 필드를 가집니다.
promptreplytool.starttool.endeditcommitdecisionerrorcheckcontractguard.*anchorrollup
세션에 기억을 주세요.
MIT 라이선스. 소스는 GitHub에 있습니다.