Skip to main content

Embex: A Universal Vector Database ORM

Project description

Embex (Python)

The fastest way to add vector search to your app.

Embex is a universal vector database client that lets you start with zero setup and scale to production without rewriting code.

🚀 Features

  • Start Simple: Use LanceDB (embedded) for zero-setup local development.
  • Unified API: Switch to Qdrant, Pinecone, or Milvus just by changing the config.
  • Performance: Powered by a shared Rust core with SIMD acceleration.
  • Type Safety: Fully typed Python bindings.

📦 Installation

pip install embex lancedb sentence-transformers

⚡ Quick Start

Build semantic search in 5 minutes using LanceDB (embedded) and local embeddings. No API keys or Docker needed!

import asyncio
from embex import EmbexClient, Vector
from sentence_transformers import SentenceTransformer

async def main():
    # 1. Setup Embedding Model
    model = SentenceTransformer('all-MiniLM-L6-v2')

    # 2. Initialize Client (uses LanceDB embedded)
    client = await EmbexClient.new_async("lancedb://./data")

    # 3. Create Collection (384 dimensions for MiniLM)
    await client.create_collection("products", dimension=384)

    # 4. Insert Data
    documents = [
        {"id": "1", "text": "Apple iPhone 15", "category": "electronics"},
        {"id": "2", "text": "Samsung Galaxy S24", "category": "electronics"},
    ]

    vectors = []
    for doc in documents:
        vectors.append(Vector(
            id=doc["id"],
            vector=model.encode(doc["text"]).tolist(),
            metadata={"text": doc["text"]}
        ))

    await client.insert("products", vectors)

    # 5. Search
    query = "smartphone"
    results = await client.search(
        collection_name="products",
        vector=model.encode(query).tolist(),
        limit=1
    )

    print(f"Query: '{query}'")
    print(f"Match: {results[0].metadata['text']}")

if __name__ == "__main__":
    asyncio.run(main())

🗺️ Development → Production Roadmap

Stage Recommendation Why?
Day 1: Learning LanceDB Embedded. Zero setup. Free.
Week 2: Staging Qdrant / Pinecone Managed cloud. Connection pooling.
Month 1: Scale Milvus Distributed. Billion-scale vectors.
Anytime PgVector You already use PostgreSQL.

☁️ Switch Provider (Zero Code Changes)

Ready for production? Just change the initialization line.

From LanceDB (Dev):

client = await EmbexClient.new_async("lancedb://./data")

To Qdrant Cloud (Prod):

client = EmbexClient(
    provider="qdrant",
    url="https://your-cluster.qdrant.io",
    api_key="..."
)

🔗 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.15.tar.gz (108.9 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.15-cp38-abi3-win_amd64.whl (36.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

embex-0.1.15-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.15-cp38-abi3-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

embex-0.1.15-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.15.tar.gz.

File metadata

  • Download URL: embex-0.1.15.tar.gz
  • Upload date:
  • Size: 108.9 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.15.tar.gz
Algorithm Hash digest
SHA256 2c8c458d419c89dcdbb2c85274115902bad018abce03ac85ce6d0b1e346c80fd
MD5 8b07eec55b213b351b14650025be4ebb
BLAKE2b-256 ffb5bd678832d3fc26eba7f9dd11a412f1c4e23dcf6bf5ea2621d7ae978cf53e

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.15.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.15-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: embex-0.1.15-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.15-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d1b5d884b6d531142275f4e87d7b920b85e88af425518eca52e699766d1ba302
MD5 3f428bafcadf60fc1ee128e64eafb49f
BLAKE2b-256 34e40fa4a04131d6244a1b21c6a5e81c3b25bb2e63dec860fb37f21ec2030962

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.15-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.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for embex-0.1.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5654e99a8d56984abbf57fff14c42d6a14f83653d4de0aa5e258089c856e2e6d
MD5 48ce6cb232a359fa9cbe7e08a35d24eb
BLAKE2b-256 71df16532183e02cd7b0d347da0b176aebfcfa1a349bba8a4368ea8831f7c51a

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.15-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.15-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for embex-0.1.15-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 744b8d6954ee85bb7ecf18110152c3107a50ef16166fd217592512eb12e06612
MD5 5fe76e6159cae4d9975c916c2cb0f0f2
BLAKE2b-256 8d1cc45eee437b64d930d67d7df91e20b777b4a978655330b6254a454e5ddd04

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.15-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.15-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for embex-0.1.15-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c20aee8a0891c65a934f9a3fb3eeeef0e3ca1f26ddbc2cb44058e07cb40b768
MD5 86651109615e70e7580ac4b0fb8f4556
BLAKE2b-256 588b06bde82664f3a0275729ff3e9d3e088ce5e8efafb1fdad538e016df06642

See more details on using hashes here.

Provenance

The following attestation bundles were made for embex-0.1.15-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