xz-embed
Text embedding and vector storage abstraction — generate & search embeddings with pluggable backends
Features
- Pluggable embedding backends — OpenAI (
openaifeature) and mock (for testing) EmbeddingModeltrait for custom model integration- Vector storage — in-memory (
InMemoryVectorStore) and SQLite (SqliteVecStore,sqlite-vecfeature) - Metadata filtering with compound expressions (
Eq,Ne,In,And,Or,Not, etc.) - Concurrent batch embedding with retry and backoff (
ConcurrentBatchManager) - Reciprocal Rank Fusion (RRF) for hybrid vector + keyword search
- Vector quantization — scalar and product quantizers
- Batch embedding request/response types
- Index builder with configurable rebuild triggers
Quick Start
use ;
async
With OpenAI (requires openai feature)
use OpenAiEmbedder;
// From environment variable OPENAI_API_KEY
let embedder = from_env?;
let vectors = embedder.embed.await?;
Vector storage & search
use HashMap;
use ;
async
Metadata-filtered search
use MetadataFilter;
let filter = and;
let results = store.search_with_filter.await?;
Hybrid search with RRF fusion
use rrf_fusion;
// fuse vector results and keyword (BM25) results
let fused = rrf_fusion;
Feature Flags
| Feature | Description | Default |
|---|---|---|
openai |
OpenAI embedding API via reqwest |
off |
sqlite-vec |
SQLite-backed vector store | on |
License
MIT OR Apache-2.0