Skip to main content

Embex: A Universal Vector Database ORM

Project description

Embex (Python)

The Universal Vector Database ORM. One API for Qdrant, Pinecone, Chroma, LanceDB, and more.

Embex is a high-performance, universal client for vector databases, built on a shared Rust core related to BridgeRust.

🚀 Features

  • Unified API: Switch providers instantly. "Write once, run anywhere."
  • Performance: Powered by Rust with SIMD acceleration.
  • Type Safety: Fully typed Python bindings.

📦 Installation

uv pip install embex
pip install embex

⚡ Quick Start

Try Embex in 30 seconds - No setup required! Uses LanceDB embedded mode (no server needed).

import asyncio
from embex import EmbexClient, Point

async def main():
    # LanceDB embedded - zero setup, just a local path
    client = await EmbexClient.new_async("lancedb", "./data")
    collection = client.collection("documents")

    # Create collection
    await collection.create(dimension=768, distance="cosine")

    # Insert data
    await collection.insert([
        Point(id="1", vector=[0.1] * 768, metadata={"text": "Hello World"})
    ])

    # Search
    results = await collection.search(vector=[0.1] * 768, top_k=5)
    print(results.results)

asyncio.run(main())

Run it: python examples/lancedb/python/quickstart.py

All Provider Quick Starts

Try Embex with any provider! Same API, different backend:

Provider Setup Quick Start
LanceDB None (embedded) python examples/lancedb/python/quickstart.py
Qdrant Docker server python examples/qdrant/python/quickstart.py
Pinecone API key python examples/pinecone/python/quickstart.py
Chroma Optional server python examples/chroma/python/quickstart.py

💡 Same API everywhere! Just change the provider name - all code stays the same. See examples/README.md for setup instructions.

5. Filtered Search (Builder Pattern)

# Coming soon: Python Builder Pattern
# Currently supported via search() arguments:

```python
results = collection.search(
    vector=[0.1, 0.2, ...],
    limit=10,
    filter={"course": "CS101"}
)

☁️ Connecting to Cloud Providers

To connect to managed services like Pinecone, Qdrant Cloud, or Zilliz (Milvus), simply provide your API key and endpoint URL.

import os
from embex import EmbexClient

# Connect to Pinecone (or other cloud providers)
client = EmbexClient(
    provider="pinecone",
    url="https://index-name.svc.pinecone.io",
    api_key=os.getenv("PINECONE_API_KEY")
)

# Connect to Qdrant Cloud
client_qdrant = EmbexClient(
    provider="qdrant",
    url="https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
    api_key=os.getenv("QDRANT_API_KEY")
)

Official Documentation & API Keys

Need help finding your API key? Check the official provider documentation:

🔌 Supported Providers

Provider Key Status
Qdrant qdrant Supported
Chroma chroma Supported
Pinecone pinecone Supported
Weaviate weaviate Supported
LanceDB lancedb Supported
Milvus milvus Supported
PgVector pgvector Supported

⭐ Star Us!

If you find Embex useful, please star the repository! It helps others discover the project.

⭐ Star on GitHub

🔗 Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embex-0.1.13.tar.gz (109.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

embex-0.1.13-cp38-abi3-win_amd64.whl (36.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

embex-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

embex-0.1.13-cp38-abi3-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

embex-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl (37.0 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file embex-0.1.13.tar.gz.

File metadata

  • Download URL: embex-0.1.13.tar.gz
  • Upload date:
  • Size: 109.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for embex-0.1.13.tar.gz
Algorithm Hash digest
SHA256 9a91197f4363e896282cc7fbd14f897dbb77237f800dfeb84a04c02d6785069c
MD5 ec7fedd5b5f285567ec7c1fe5014f15b
BLAKE2b-256 19e98d558c1d53c818c7da5904ea6f8f3c16134ff39eb6fe7b4b7ef19f211da2

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.13.tar.gz:

Publisher: release-python.yml on bridgerust/bridgerust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embex-0.1.13-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: embex-0.1.13-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 36.1 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for embex-0.1.13-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5b14700d91ac1e6d948ff4f790060ad46b3b142f893fe920158c774a52ea89a7
MD5 7c927868daa0cd3c00c1ee4eecefec34
BLAKE2b-256 3049f3099364c7c026c37c3310f5427d903a5a3870ac6428e8c910274f2ca1a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.13-cp38-abi3-win_amd64.whl:

Publisher: release-python.yml on bridgerust/bridgerust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embex-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for embex-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06cc1e33ff7be1b2725428eb2d59ff6941f398f6a209e31dccd7b6fd69928699
MD5 1ce788b44e7dd8a06daefca24a1a56ff
BLAKE2b-256 5b4896f30137871c9e461b6df9e6d4daa24128ff531a3179ceabc34456f22ac6

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.13-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-python.yml on bridgerust/bridgerust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embex-0.1.13-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for embex-0.1.13-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61fe1965998a38e1555d24cc960c21d71bbdcb33bbf7995e3f851af5465717d6
MD5 3259991c32d06eac76e553348d0454d1
BLAKE2b-256 e051e33a3e08064f5dfe42f94ce0158dc8d39a6a2f12a3ab37d2abc57136690f

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.13-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: release-python.yml on bridgerust/bridgerust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embex-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for embex-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4e78688f0b23dc2a673f0704bbcbce94a3e9f5be64f8bca52925641a9dd0fa7b
MD5 dbbce733d49cbfbfb0306ccc55bf9327
BLAKE2b-256 24041c9bf08ffc6fdd56fc71996d276d53cf064517ccd36ff369d1d767cf2b39

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.13-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: release-python.yml on bridgerust/bridgerust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page