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(provider="lancedb", url="./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(provider="lancedb", url="./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.16.tar.gz (107.5 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.16-cp38-abi3-win_amd64.whl (36.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

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

Uploaded CPython 3.8+macOS 11.0+ ARM64

embex-0.1.16-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.16.tar.gz.

File metadata

  • Download URL: embex-0.1.16.tar.gz
  • Upload date:
  • Size: 107.5 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.16.tar.gz
Algorithm Hash digest
SHA256 52fabc39efacad1a155ec152a65cb882d8db35fc125145462df4c8e3ce1e3ce8
MD5 ad42f798140e004c06f92401148ce37f
BLAKE2b-256 f8ab6fe53622094e3e9bb3e9c8c6ab0cc390dff365283c56e3ff8402c0d7beb8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: embex-0.1.16-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.16-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6f2d57cc3202f4f4e69a66de4c81153d4ef510f71fc4500170b15345adc69332
MD5 6ea4a261cbd261c06ab338d449df922b
BLAKE2b-256 27941ecccffb78f25407be31594508242f92a16e19bee9e7e159f6516676fe74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for embex-0.1.16-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ff13e6f486b3539671b3da8d92c1dd4a860839ad75b7854582953fdff4855e8
MD5 9ff29bf0b277021f77cf7c58ab082e6f
BLAKE2b-256 ac33ef760d6f551a2c6c87cad9540cb108ab688f3ef4aade19c0a42455c2ec94

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for embex-0.1.16-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac589906ad6de7e7081cff412ef5c94b9385477ff8e8b1102c372594d6937249
MD5 85fdda0cd43fefce48927a7017455aad
BLAKE2b-256 5cf096fa30478e5d918f3f2c68a81fb76ac5e93847214c8bbc1c2121f85b37db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for embex-0.1.16-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5ede3a5608bd89c687c6823ff5078b80fbe6b7669e9a30e2465ae0590ba444c5
MD5 688361ac721d13118192f021c0b4f61e
BLAKE2b-256 fa72d3f833cbd6bdad671fc6e911735f10176a078ddcf92edfb5fa12e567f4da

See more details on using hashes here.

Provenance

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