CLAUDE.md 1.3 KB

Smartbotic Database

Build

cmake -B build -G Ninja
cmake --build build -j$(nproc)

Test

cmake --build build -j$(nproc) && ./build/tests/test_vector_storage

Architecture

  • proto/database.proto — gRPC service and message definitions
  • service/src/ — Database server implementation
    • memory_store.hpp/.cpp — In-memory document + vector storage
    • document.hpp — Document and CollectionOptions types
    • database_grpc_impl.cpp — gRPC request handlers
    • persistence/ — WAL, snapshots, persistence manager
    • migrations/ — Migration runner
  • client/ — C++ client library (smartbotic-db-client)
  • tests/ — Integration tests

Key Features

  • JSON document store with collections, version history, field-level encryption
  • gRPC API with replication, events, file storage, migrations
  • Vector Storage — Embedding vectors stored alongside documents with SIMD-accelerated (AVX2/SSE4.1) cosine similarity search via SimilaritySearch RPC. Vectors use _vector document field, stored in parallel float arrays, persisted through WAL (VEC_PUT/VEC_DELETE) and snapshots (v3 format). Collection vector_dimension option is immutable after creation.

Conventions

  • C++20
  • nlohmann/json for JSON handling
  • spdlog for logging
  • LZ4 for compression
  • gRPC/Protobuf for API