Skip to content

Providers

Embex supports a wide range of vector databases. Switching providers is as simple as changing the provider and URL parameters.

StageProviderWhy?
DevelopmentLanceDBZero Setup. Runs locally (embedded). No Docker or API keys needed.
ProductionQdrant / Pinecone / MilvusScale. Managed services, high throughput, distributed.

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")

When you’re ready to scale, switch to a cloud provider.

Managed serverless vector database.

client = await EmbexClient.new_async(
provider="pinecone",
url="https://index-name.svc.pinecone.io",
api_key="your-api-key"
)

High-performance Rust vector database (Cloud or Self-Hosted).

# Qdrant Cloud
client = await EmbexClient.new_async(
provider="qdrant",
url="https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
api_key="your-api-key"
)
# Local Docker
client = await EmbexClient.new_async(
provider="qdrant",
url="http://localhost:6333"
)
client = await EmbexClient.new_async(provider="milvus", url="http://localhost:19530")
client = await EmbexClient.new_async(provider="weaviate", url="http://localhost:8080")
client = await EmbexClient.new_async(provider="chroma", url="http://localhost:8000")
client = await EmbexClient.new_async(
provider="pgvector",
url="postgresql://user:pass@localhost:5432/db"
)
ProviderProvider StringExample 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"