Providers
Embex supports a wide range of vector databases. Switching providers is as simple as changing the provider and URL parameters.
The Recommended Path
Section titled “The Recommended Path”| Stage | Provider | Why? |
|---|---|---|
| Development | LanceDB | Zero Setup. Runs locally (embedded). No Docker or API keys needed. |
| Production | Qdrant / Pinecone / Milvus | Scale. Managed services, high throughput, distributed. |
LanceDB (Recommended for Dev)
Section titled “LanceDB (Recommended for Dev)”Start here. LanceDB runs in-process and stores data in the local filesystem.
# Persist to local folder (creates ./data directory)client = await EmbexClient.new_async(provider="lancedb", url="./data")// Persist to local folder (creates ./data directory)const client = await EmbexClient.newAsync("lancedb", "./data");Cloud Providers (Production)
Section titled “Cloud Providers (Production)”When you’re ready to scale, switch to a cloud provider.
Pinecone
Section titled “Pinecone”Managed serverless vector database.
client = await EmbexClient.new_async( provider="pinecone", url="https://index-name.svc.pinecone.io", api_key="your-api-key")const client = await EmbexClient.newAsync( "pinecone", "https://index-name.svc.pinecone.io", "your-api-key");Qdrant
Section titled “Qdrant”High-performance Rust vector database (Cloud or Self-Hosted).
# Qdrant Cloudclient = await EmbexClient.new_async( provider="qdrant", url="https://xyz-example.eu-central.aws.cloud.qdrant.io:6333", api_key="your-api-key")
# Local Dockerclient = await EmbexClient.new_async( provider="qdrant", url="http://localhost:6333")// Qdrant Cloudconst client = await EmbexClient.newAsync( "qdrant", "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333", "your-api-key");
// Local Dockerconst client = await EmbexClient.newAsync("qdrant", "http://localhost:6333");Other Providers
Section titled “Other Providers”Milvus
Section titled “Milvus”client = await EmbexClient.new_async(provider="milvus", url="http://localhost:19530")const client = await EmbexClient.newAsync("milvus", "http://localhost:19530");Weaviate
Section titled “Weaviate”client = await EmbexClient.new_async(provider="weaviate", url="http://localhost:8080")const client = await EmbexClient.newAsync("weaviate", "http://localhost:8080");Chroma
Section titled “Chroma”client = await EmbexClient.new_async(provider="chroma", url="http://localhost:8000")const client = await EmbexClient.newAsync("chroma", "http://localhost:8000");PgVector
Section titled “PgVector”client = await EmbexClient.new_async( provider="pgvector", url="postgresql://user:pass@localhost:5432/db")const client = await EmbexClient.newAsync( "pgvector", "postgresql://user:pass@localhost:5432/db");Supported Providers
Section titled “Supported Providers”| Provider | Provider String | Example URL |
|---|---|---|
| Pinecone | "pinecone" | "https://index-name.svc.pinecone.io" |
| Qdrant | "qdrant" | "http://localhost:6333" |
| Milvus | "milvus" | "http://localhost:19530" |
| Weaviate | "weaviate" | "http://localhost:8080" |
| Chroma | "chroma" | "http://localhost:8000" |
| PgVector | "pgvector" | "postgresql://user:pass@localhost:5432/db" |
| LanceDB | "lancedb" | "./data" |