High-performance vector database and search engine in Rust for semantic search, document indexing, and AI applications. Ships as a Cargo workspace (5 crates) with binary RPC + HTTP transports, a React dashboard, and native SDKs for Rust, Python, TypeScript, Go, and C#.
- VectorizerRPC (default, port
15503) โ binary MessagePack over TCP, multiplexed connection pool. See wire spec. - REST API (port
15002) โ universal HTTP fallback, powers the dashboard and any caller that doesn't speak raw TCP. - gRPC โ Qdrant-compatible service.
- GraphQL โ full REST parity with async-graphql + GraphiQL playground.
- MCP โ 31 focused tools for AI model integration (Cursor, Claude Desktop, etc.).
- UMICP Protocol โ native JSON types + tool discovery endpoint.
- SIMD acceleration โ AVX2-optimized vector ops with runtime CPU detection (5-10x faster).
- Metal GPU โ macOS Apple Silicon via
hive-gpu0.2; logs render real device name, driver, VRAM. - Sub-3ms search (CPU) / <1ms (GPU) via HNSW indexing.
- 4-5x faster than Qdrant in head-to-head benchmarks (0.16-0.23ms vs 0.80-0.87ms avg latency).
.vecdbunified format โ 20-30% space savings, automatic snapshots.- Memory-mapped storage โ datasets larger than RAM, efficient OS paging.
- Product Quantization โ 64x memory reduction with minimal accuracy loss.
- Scalar Quantization + cache hit ratio metrics.
- Raft consensus via openraft (pinned
=0.10.0-alpha.17) โ automatic leader election in 1-5s, write-redirect via HTTP 307, WAL-backed durable replication, DNS discovery for Kubernetes headless services. - Master-Replica โ TCP streaming replication with full/partial sync, exponential reconnect backoff (5sโ60s).
- Distributed sharding โ horizontal scaling with automatic routing; distributed hybrid search via
RemoteHybridSearchRPC with dense-only fallback for mixed-version clusters. - HiveHub cluster mode โ multi-tenant with quotas, usage tracking, tenant isolation, mandatory MMap storage, 1GB cache cap.
- Semantic similarity โ Cosine, Euclidean, Dot Product.
- Hybrid search โ Dense + Sparse with Reciprocal Rank Fusion (RRF).
- Intelligent search โ query expansion, semantic reranking.
- Multi-collection search across projects.
- Graph relationships โ automatic edge discovery, neighbor exploration, shortest-path finding.
- Built-in providers โ TF-IDF, BM25, FastEmbed, BERT, MiniLM, custom models.
- Document conversion โ PDF, DOCX, XLSX, PPTX, HTML, XML, images (14 formats).
- Qdrant API compatibility โ Snapshots, Sharding, Cluster Management, Query (with prefetch), Search Groups, Matrix, Named Vectors (partial), PQ/Binary quantization config.
- Summarization โ extractive, keyword, sentence, abstractive (OpenAI GPT).
- JWT + API Key authentication with RBAC.
- JWT secret is mandatory โ boot refuses to start with empty / default / <32 char secrets when auth is enabled.
- First-run root credentials written to
{data_dir}/.root_credentials(0o600), never logged. - Payload encryption โ optional ECC-P256 + AES-256-GCM, zero-knowledge, per-collection policies (docs).
- TLS 1.2/1.3 with mTLS, configurable cipher suites, ALPN.
- Per-API-key rate limiting with tiers + overrides.
- Path-traversal guard on file discovery; canonicalized base, symlink-escape refusal.
- Web Dashboard โ React + TypeScript; JWT login, graph CRUD (edges, neighbors, paths), collection management, API sandbox, setup wizard with glassmorphism design. Embedded in the binary (~26MB, no external assets needed).
- Desktop GUI โ Electron + vis-network for visual database management.
Highlights โ see CHANGELOG.md for the full breakdown.
Breaking
- RPC is default transport (
rpc.enabled: true, port15503). REST stays on15002. Migration guide:docs/migration/rpc-default.md. Opt out withrpc.enabled: false. - gRPC
SearchResult.scorenarroweddoubleโfloat. Clients on the pre-v3 proto must regenerate. - JWT secret must be explicitly configured โ no more insecure default. Generate via
openssl rand -hex 64and inject viaVECTORIZER_JWT_SECRET. - Configs moved under
config/โconfig.ymlโconfig/config.yml, presets underconfig/presets/. Legacy./config.ymlstill works with a deprecation warning (removed in v3.1). - Cargo workspace split โ
vectorizer-core,vectorizer-protocol,vectorizer,vectorizer-server,vectorizer-cli. Callers reaching into the server layer need to switch fromvectorizer::{server,api,grpc,logging,umicp}::*tovectorizer_server::*.
Removed
- Standalone JavaScript SDK dropped โ TypeScript SDK ships compiled CJS + ESM, usable from plain JS. Migrate
@hivehub/vectorizer-sdk-jsโ@hivehub/vectorizer-sdk. - TypeScript SDK scope is
@hivehub, not@hivellm(docs corrected). - Framework integration packages dropped โ
langchain,langchain-js,langflow,n8n,tensorflow,pytorchadapters. Published versions stay installable; integrate against native SDKs directly.
Added
- Layered config loader โ
VECTORIZER_MODE=dev|productionmergesconfig/modes/<mode>.ymlover base. Deep YAML merge with null-clear semantics. Seedocs/deployment/configuration.md. - Docker collapsed to one compose with profiles โ
docker compose --profile <default|dev|ha|hub> up -d. - C# SDK RPC transport (
Vectorizer.Sdk.Rpc3.0.0) โ TCP + MessagePack framing, connection pool, ASP.NET Core DI. #![deny(missing_docs)]+cargo doc -D warningsCI gate โ cleared 2,219 missing-docs warnings to 0.unwrap_used/expect_useddenied workspace-wide โ every production.unwrap()either returnsResultor sits behind a documented#[allow].
Changed
rmcp0.10 โ 1.5 โ MCP SDK major rewrite; builder-based construction across every handler.- Second-pass dep migrations โ reqwest 0.13, arrow/parquet 58, zip 8, tantivy 0.26, hmac 0.13 + sha2 0.11, hf-hub 0.5, sysinfo 0.38, candle 0.10.2, bcrypt 0.19, openraft pinned
=0.10.0-alpha.17. - Frontend majors โ React 19, react-router 7, TypeScript 6 (dashboard), vitest 4, eslint 10, Electron 41, Vue-router 5 (GUI).
parking_lotmigration complete โ allstd::sync::{Mutex,RwLock}off the hot path; CI grep gate prevents regression.- Hot-path
rand/hmac/tonic 0.14/prost 0.14/bincode 2.0upgraded.
curl -fsSL https://raw.githubusercontent.com/hivellm/vectorizer/main/scripts/install.sh | bashInstalls CLI + systemd service. Commands: sudo systemctl {status|restart|stop} vectorizer, sudo journalctl -u vectorizer -f.
powershell -c "irm https://raw.githubusercontent.com/hivellm/vectorizer/main/scripts/install.ps1 | iex"Installs CLI + Windows Service (requires Admin). Commands: Get-Service Vectorizer, {Start|Stop|Restart}-Service Vectorizer.
docker run -d \
--name vectorizer \
-p 15002:15002 -p 15503:15503 \
-v $(pwd)/vectorizer-data:/vectorizer/data \
-e VECTORIZER_AUTH_ENABLED=true \
-e VECTORIZER_ADMIN_USERNAME=admin \
-e VECTORIZER_ADMIN_PASSWORD=your-secure-password \
-e VECTORIZER_JWT_SECRET=$(openssl rand -hex 64) \
--restart unless-stopped \
hivehub/vectorizer:latestDocker Compose with profiles:
cp .env.example .env
# Edit .env with your credentials
docker compose --profile default up -d # standalone
docker compose --profile dev up -d # dev overlay
docker compose --profile ha up -d # Raft cluster
docker compose --profile hub up -d # multi-tenantProfiles are mutually exclusive on host port 15002.
Images: Docker Hub ยท GHCR
git clone https://github.com/hivellm/vectorizer.git
cd vectorizer
cargo build --release # Basic
cargo build --release --features hive-gpu # macOS Metal
cargo build --release --features full # All features
./target/release/vectorizer| Surface | URL | Notes |
|---|---|---|
| VectorizerRPC (primary) | vectorizer://localhost:15503 |
Binary MessagePack over TCP โ see operator guide |
| REST API | http://localhost:15002 |
Universal HTTP fallback |
| Web Dashboard | http://localhost:15002/dashboard/ |
React UI, embedded in binary |
| MCP Server | http://localhost:15002/mcp |
31 tools for AI agents |
| GraphQL | http://localhost:15002/graphql |
GraphiQL at /graphql |
| UMICP Discovery | http://localhost:15002/umicp/discover |
|
| Health Check | http://localhost:15002/health |
Upgrading from v2.x? RPC is now on by default on port
15503. REST is unchanged. If you can't expose the new port, setrpc.enabled: false. See v3.x migration guide.
Configs live under config/:
config/
โโโ config.yml # Base config (your deployment)
โโโ config.example.yml # Reference
โโโ modes/
โ โโโ dev.yml # Layered override: verbose logs, loopback, watcher on
โ โโโ production.yml # Layered override: warn logs, larger threads/cache, zstd, scheduled snapshots
โโโ presets/ # Standalone full configs (legacy style)
โโโ production.yml
โโโ cluster.yml
โโโ hub.yml
โโโ development.yml
Layered loader (recommended):
VECTORIZER_MODE=production ./target/release/vectorizerMerges config/modes/production.yml over config/config.yml. Typos in the mode override fail fast at boot.
Auth is enabled by default in Docker. Default creds โ change in production.
# Login
curl -X POST http://localhost:15002/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}'
# JWT in requests
curl http://localhost:15002/collections \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Create API key (JWT required)
curl -X POST http://localhost:15002/auth/keys \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{"name":"Production","permissions":["read","write"],"expires_in_days":90}'
# API key in requests (NO Bearer prefix)
curl http://localhost:15002/collections \
-H "Authorization: YOUR_API_KEY"| Method | Header | Use case |
|---|---|---|
| JWT | Authorization: Bearer <token> |
Dashboard, short-lived sessions |
| API Key | Authorization: <key> |
MCP, CLI, long-lived integrations |
Production must set:
VECTORIZER_JWT_SECRETโ โฅ32 chars, not the historical default. Boot aborts otherwise.VECTORIZER_ADMIN_PASSWORDโ strong, โฅ32 chars.
First-run root credentials are written to {data_dir}/.root_credentials (0o600), never printed to stdout. Read and delete after first login.
See Docker Authentication Guide and Security Policy.
| Metric | Value |
|---|---|
| Search latency (CPU) | < 3ms |
| Search latency (Metal GPU) | < 1ms |
| Throughput | 4,400-6,000 QPS (vs Qdrant 1,100-1,300) |
| Storage reduction | 20-30% (.vecdb) + PQ 64x |
| MCP tools | 31 |
| Document formats | 14 |
- Search: 4-5x faster (0.16-0.23ms vs 0.80-0.87ms avg latency).
- Insert: Fire-and-forget pattern, configurable batch / body limits, background processing.
- Scenarios: Small (1K) / Medium (5K) / Large (10K) vectors ร dimensions 384 / 512 / 768.
| Feature | Vectorizer | Qdrant | pgvector | Pinecone | Weaviate | Milvus | Chroma |
|---|---|---|---|---|---|---|---|
| Core | |||||||
| Language | Rust | Rust | C | C++/Go | Go | C++/Go | Python |
| License | Apache 2.0 | Apache 2.0 | PostgreSQL | Proprietary | BSD | Apache 2.0 | Apache 2.0 |
| APIs | |||||||
| REST | โ | โ | via PG | โ | โ | โ | โ |
| gRPC (Qdrant-compat) | โ | โ | โ | โ | โ | โ | โ |
| GraphQL | โ + GraphiQL | โ | โ | โ | โ | โ | โ |
| MCP | โ 31 tools | โ | โ | โ | โ | โ | โ |
| Binary RPC | โ MessagePack | โ | โ | โ | โ | โ | โ |
| SDKs | Rust, Python, TS, Go, C# | All | All | Most | Most | Most | Python |
| Performance | |||||||
| Search latency | < 3ms CPU / < 1ms GPU | 1-5ms | 5-50ms | 50-100ms | 10-50ms | 5-20ms | 10-100ms |
| SIMD | โ AVX2 | โ | โ | โ | โ | โ | โ |
| GPU | โ Metal | โ CUDA | โ | โ Cloud | โ | โ CUDA | โ |
| Storage | |||||||
| HNSW | โ | โ | โ | โ | โ | โ | โ |
| PQ (64x) | โ | โ | โ | โ | โ | โ | โ |
| Scalar Quantization | โ | โ | โ | โ | โ | โ | โ |
| MMap | โ | โ | โ | โ | โ | โ | โ |
| Advanced | |||||||
| Graph Relationships | โ auto + GUI | โ | โ | โ | โ | โ | โ |
| Document Processing | โ 14 formats | โ | โ | โ | โ | โ | โ |
| Hybrid Search | โ | โ | โ | โ | โ | โ | โ |
| Query Expansion | โ | โ | โ | โ | โ | โ | โ |
| Qdrant API compat | โ + migration | N/A | โ | โ | โ | โ | โ |
| Scaling | |||||||
| Sharding | โ | โ | via PG | โ Cloud | โ | โ | โ |
| Replication | โ Raft + Master-Replica | โ | via PG | โ Cloud | โ | โ | โ |
| Management | |||||||
| Dashboard | โ React + graph GUI | โ basic | pgAdmin | โ Cloud | โ | โ | โ basic |
| Desktop GUI | โ Electron | โ | โ | โ | โ | โ | โ |
| Security | |||||||
| JWT + API Keys | โ | โ | via PG | โ Cloud | โ | โ | โ |
| Payload Encryption | โ ECC-P256 + AES-GCM | โ | via PG | โ Cloud | โ | โ | โ |
- MCP integration (31 tools) โ native AI-agent protocol.
- Graph relationships โ auto-discovery + full GUI (edges, path-finding, neighbor exploration).
- GraphQL โ full REST parity + GraphiQL.
- Document processing โ 14 formats built in.
- Qdrant compatibility โ full API + migration tools.
- Performance โ 4-5x faster than Qdrant in benchmarks.
- Binary RPC default โ MessagePack over TCP on port 15503 for low-overhead client traffic.
- Complete SDK coverage โ Rust, Python, TypeScript (+JS), Go, C# โ all on v3.0.0.
Best fit: AI apps needing MCP, document ingestion, graph relationships, and sub-ms search with an embedded dashboard.
- RAG systems โ semantic search with automatic document conversion.
- Document search โ PDFs, Office, web content.
- Code analysis โ semantic code navigation.
- Knowledge bases โ enterprise multi-format search.
Cursor / Claude Desktop config:
{
"mcpServers": {
"vectorizer": {
"url": "http://localhost:15002/mcp",
"type": "streamablehttp"
}
}
}Core operations (9)
list_collections ยท create_collection ยท get_collection_info ยท insert_text ยท get_vector ยท update_vector ยท delete_vector ยท search ยท multi_collection_search
Advanced search (4)
search_intelligent (query expansion) ยท search_semantic (reranking) ยท search_extra (combined) ยท search_hybrid (dense + sparse RRF)
Discovery & files (7)
filter_collections ยท expand_queries ยท get_file_content ยท list_files ยท get_file_chunks ยท get_project_outline ยท get_related_files
Graph (8)
graph_list_nodes ยท graph_get_neighbors ยท graph_find_related ยท graph_find_path ยท graph_create_edge ยท graph_delete_edge ยท graph_discover_edges ยท graph_discover_status
Maintenance (3)
list_empty_collections ยท cleanup_empty_collections ยท get_collection_stats
Cluster-management operations are REST-only for security.
All SDKs synchronized at v3.0.0. The TypeScript SDK ships compiled CJS + ESM โ usable from plain JavaScript, no separate JS package needed.
| SDK | Install |
|---|---|
| Python | pip install vectorizer-sdk |
| TypeScript / JS | npm install @hivehub/vectorizer-sdk |
| Rust | cargo add vectorizer-sdk |
| C# | dotnet add package Vectorizer.Sdk (REST) ยท Vectorizer.Sdk.Rpc (RPC) |
| Go | go get github.com/hivellm/vectorizer-sdk-go |
Every SDK accepts both vectorizer://host[:port] (RPC, default port 15503) and http(s)://host[:port] (REST) URLs through the same endpoint parser.
- Config migration โ parse Qdrant YAML/JSON โ Vectorizer format.
- Data migration โ export from Qdrant, import into Vectorizer.
- Validation โ integrity + compatibility checks.
- REST compatibility โ full Qdrant API at
/qdrant/*.
use vectorizer::migration::qdrant::{QdrantDataExporter, QdrantDataImporter};
let exported = QdrantDataExporter::export_collection(
"http://localhost:6333",
"my_collection"
).await?;
let result = QdrantDataImporter::import_collection(&store, &exported).await?;Multi-tenant cluster mode integration with HiveHub.Cloud.
- Tenant isolation โ owner-scoped collections.
- Quota enforcement โ collections / vectors / storage per tenant.
- Usage tracking โ automatic reporting.
- User-scoped backups.
hub:
enabled: true
api_url: "https://api.hivehub.cloud"
tenant_isolation: "collection"
usage_report_interval: 300export HIVEHUB_SERVICE_API_KEY="your-service-api-key"Cluster-mode requirements (enforced at boot):
| Requirement | Default |
|---|---|
| MMap storage (Memory storage rejected) | Enforced |
| Max cache memory across all caches | 1 GB |
| File watcher | Disabled |
| Strict config validation | Enabled |
cluster:
enabled: true
node_id: "node-1"
memory:
max_cache_memory_bytes: 1073741824
enforce_mmap_storage: true
disable_file_watcher: true
strict_validation: trueSee HiveHub Integration and Cluster Memory Limits.
crates/
โโโ vectorizer-core/ # Foundation: error, codec, quantization, simd, compression, paths
โโโ vectorizer-protocol/ # RPC wire types + tonic-generated gRPC
โโโ vectorizer/ # Engine (umbrella): db, embedding, models, cache, persistence, search, ...
โโโ vectorizer-server/ # Transport: HTTP / gRPC / MCP / RPC + binary
โโโ vectorizer-cli/ # CLI binaries
sdks/rust/ # Rust SDK โ re-exports vectorizer-protocol wire types
Runtime directories resolve to platform-standard locations (~/.local/share/vectorizer/ on Linux, ~/Library/Application Support/vectorizer/ on macOS, %APPDATA%\vectorizer\ on Windows), overridable via VECTORIZER_DATA_DIR / VECTORIZER_LOGS_DIR.
- User Documentation โ install + tutorials
- API Reference โ REST
- VectorizerRPC Spec โ wire protocol
- RPC Operator Guide
- Configuration โ layered loader
- v3.x Migration โ RPC-default rollout
- Dashboard Integration
- Qdrant Compatibility
- HiveHub Integration
- Cluster Memory Limits
- MCP Guide
- Encryption
- Technical Specs โ architecture, performance, implementation
Apache License 2.0 โ see LICENSE.
See CONTRIBUTING.md.
