bijux-vex: contract-driven vector execution runtime with explicit determinism semantics.
Project description
bijux-vex — vector execution engine with explicit determinism
bijux-vex executes vector workloads under contracts. Deterministic runs are replayable; non-deterministic runs are bounded, audited, and comparable. Nothing is implicit: no silent defaults, retries, or randomness.
What bijux-vex is
Vector execution engine with explicit determinism contracts. Deterministic paths are bit-stable and replayable; non-deterministic paths (ANN) are supported but experimental and always emit approximation + randomness provenance.
What bijux-vex is not
- Not a vector DB or storage layer.
- Not an embedding or RAG framework.
- Not a serving platform with SLAs.
Quick links
- Start here (single onboarding path): user/start_here.md
- Docs home: https://bijux.github.io/bijux-vex/
- Concepts: overview/concepts.md
- API: api/index.md and
api/v1/schema.yaml(canonical contract) - Examples: examples/overview.md
- Changelog: changelog.md
- Not a vector DB: user/not_a_vdb.md
Reading order (guaranteed)
- Start with user/start_here.md for the problem, fit, and next steps.
- Then overview/concepts.md for execution vs storage and determinism vs non-determinism.
- Then spec/system_contract.md and spec/execution_contracts.md for the normative rules.
- Run examples/overview.md for deterministic and ANN flows.
- Consult api/index.md and
api/v1/schema.yamlwhen integrating.
Everything else is reference or maintainer material.
Start here
Read docs/user/start_here.md. It explains the problem, when to use bijux-vex, deterministic vs non-deterministic execution, and where to go next.
Minimal example (CLI, 10 lines)
bijux vex create --name demo
bijux vex ingest --documents doc.txt --vectors [[0,1,0]]
bijux vex artifact --artifact-id exact --contract deterministic
bijux vex execute --artifact-id exact --vector [0,1,0] --top-k 1 --contract deterministic
bijux vex artifact --artifact-id ann --contract non_deterministic
bijux vex execute --artifact-id ann --vector [0,1,0] --top-k 1 --contract non_deterministic --randomness-profile seed=1
bijux vex explain --artifact-id exact --result-id <vector_id>
bijux vex compare --artifact-id exact --other-id ann
Execution truth table (canonical)
| Contract | Support level | Replayable | Output stability | Provenance / audit | Notes |
|---|---|---|---|---|---|
| deterministic | stable | yes (bit-identical) | stable | full chain + fingerprints | frozen ABI; breaking changes require major bump |
| non_deterministic | stable_bounded | no (envelope only) | outcome-variable (bounded divergence) | approximation + randomness metadata required | experimental surface; may fail if ANN backend unavailable |
Stability guarantees
- Supported Python: 3.11–3.13 (CI + metadata aligned).
- Package version: dynamic from git tags via hatch-vcs.
- Public API version: v1.x (frozen; breaking changes require major bump).
- Deterministic execution surface and ABI are frozen; breaking changes require a major bump.
- ND/ANN execution is experimental and may change; it can legally fail when no ANN backend is available.
- Determinism gates, ANN contracts, and provenance schema are enforced in conformance tests; regressions fail CI.
- Testing policy: tox runs multi-version tests; lint/quality/security/typing gates run only on the lowest supported Python (3.11) for cost/time efficiency.
No synonym drift
We use one term per concept: replayable (deterministic, bit-identical), audited (non-deterministic with envelopes), stable (supported and frozen), outcome-variable (bounded divergence). Avoid “reproducible” or “supported” as stand-ins.
Public surfaces
- CLI (Typer):
create,ingest,materialize,execute,explain,replay,compare,list-artifacts. - API (FastAPI): versioned under
bijux_vex.api.v1with frozen OpenAPI (api/v1/openapi.v1.json), endpoints mirror CLI verbs. - Core types:
ExecutionContract,ExecutionRequest,ExecutionArtifact,ExecutionResources,ApproximationReport,RandomnessProfile.
Non-goals checksum
X - Not a VDB or search service.
X - Not an ML/embedding framework.
X - Not a serving layer with SLAs.
X - Not a “best-effort” ANN wrapper—contracts must be explicit.
Why strict
Aggressive invariants, terminal failures, and refusal to fallback exist to keep provenance honest and prevent silent divergence; permissive modes are intentionally rejected.
Assumptions
- Trusted runtime and honest backend declaration.
- Data is non-adversarial unless stated in tests.
- Users read the “Start here” path before touching API/CLI.
When contracts are violated
- Deterministic: execution refuses to run; replay fails closed.
- Non-deterministic: fails fast if ANN unavailable or metadata missing; never silently falls back to deterministic.
- Budget or capability breaches raise typed errors; no hidden retries or approximations.
Contributing & release
- Keep invariants terminal; ND without metadata is forbidden.
- Run
make lint quality security testbefore any PR. - Release process: see
docs/maintainer/release_process.md; tags drive package versions, SBOM, and wheels. - Licensing: code under MIT; docs/config under CC0. See
docs/legal/licensing.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bijux_vex-0.1.0.tar.gz.
File metadata
- Download URL: bijux_vex-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b7def3a0f921246646a2f2b9dff660de26bf2b1d5fae7288014fbbb00db97c9
|
|
| MD5 |
fce5cdbbf7c52553bc6db0fe51a4c09b
|
|
| BLAKE2b-256 |
e24b45cea1e281b87976a7448a7abe27bcc0e5ea7e5e9791dbd413d5cbc81637
|
File details
Details for the file bijux_vex-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bijux_vex-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efd9f7f85a0f46767a3c9c9f4c5dbafa272a2c17f464f372517338f5fd9a3892
|
|
| MD5 |
3f285473a13ea4fbf29cd33150d3cacc
|
|
| BLAKE2b-256 |
858f3d078fcfe0e83028b467705e3574a92ad7b01ea520f5e298a52a43a53aed
|