Impera: Universal Vector Database Client
A universal client for querying across multiple vector databases that use different embedding models, returning a unified result to the caller.
The Problem
Vector databases are built around a single embedding model. When an application spans multiple vector databases — whether by design or circumstance — there is no standard way to query across them. Each database lives in an incompatible vector space, requiring the caller to manage embedding, querying, and result merging manually.
What This Is
A universal client that, given an intention as input:
- Identifies which embedding model each target database uses
- Embeds the input accordingly, once per model
- Queries each database in its own embedding space
- Returns a normalized, reconcilable result set to the caller
The loop, analysis, and reconciliation logic belong to the calling application. This client handles the embedding and search layer only.
What This Is Not
- A vector database
- A reconciliation or ranking engine
- An agent or reasoning system
- A wrapper around any single vector database or embedding provider
Specifications
This project is specification-first. The client behavior is defined by a set of open, versioned, machine-readable specs before any implementation. See spec/SPEC.md for how specs are written and governed.
The v1 spec set covers:
| Spec | Purpose |
|---|---|
| Registry | Maps each source to its embedding model and access method |
| Query | Format for an intention passed to the client |
| Result | Normalized schema returned to the caller |
| Auth | Credentials and access configuration per source |
| Error | Error types and fallback behavior |
| Versioning | How embedding model version changes are declared and handled |
Status
Specification in progress. No implementation yet.
Contributing
Contributions to the specs are welcome via PR. See spec/SPEC.md for the process.
License
Apache 2.0
Metadata
Release files for impera 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| impera-0.1.0.tar.gz | 54.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| impera-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 90.9 kB
Release files / impera-0.1.0.tar.gz
| Download URL | impera-0.1.0.tar.gz |
|---|---|
| Size | 54.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdb154d2043f17f3fac17b60fd2105908a35c7cb480894b1a5f624d66ba08c9a
|
|
BLAKE2b-256 checksum How to use checksums |
357063f377a15bf0ff92b56a0ab0656cc9e9e2d6b73b6b809e336c38160d3709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / impera-0.1.0-py3-none-any.whl
| Download URL | impera-0.1.0-py3-none-any.whl |
|---|---|
| Size | 36.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83edae1e5b5f493ecc112669548f9824c9ee0e2938a0111c3d87f830f852cf3c
|
|
BLAKE2b-256 checksum How to use checksums |
a124299337caddbe9271fcc605c1d2ed873acfb1f8dd9d9fecf706b1be05de99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|