Skip to main content
logo

edda

License: MIT Python 3.10+ Zig 0.15.2

[!WARNING] Edda is in early development (v0.1). The API will change between versions.

Edda is a lightweight embedded vector search engine written in Zig with Python bindings. Unlike server-based vector databases (Qdrant, Weaviate, Milvus), Edda runs in-process. No daemon, no network, no infrastructure. Unlike pure-C++ libraries (FAISS, hnswlib), it ships with a clean Python API and zero compile-time dependencies for end users. Useful for prototyping RAG pipelines, embedding small-to-medium collections in applications, or learning how vector search works under the hood.

Named after the Poetic Edda.

Installation

pip install pyedda

Supported platforms (prebuilt wheels):

  • Linux x86_64
  • macOS arm64 (Apple Silicon)
  • Windows x86_64

On other platforms pip install will build from source, which requires Zig 0.15.2+ to be installed.

Quickstart

import numpy as np
from edda import IndexFlat

# In a real pipeline these vectors come from an embedding model
# (OpenAI, sentence-transformers, BGE, etc.)
vectors = np.array([
    [0.1, 0.2, 0.3],
    [0.9, 0.1, 0.0],
    [0.1, 0.3, 0.28],
], dtype=np.float32)

idx = IndexFlat(dim=3, metric="cosine")
idx.add(vectors, ids=np.array([10, 20, 30], dtype=np.int64))
print(len(idx))  # 3

query = np.array([[0.1, 0.2, 0.3]], dtype=np.float32)
result = idx.search(query, k=2)
print("Top ids:", result.ids[0])
print("Scores:", result.scores[0])

# Persistence
idx.save("my_index.edda")
loaded = IndexFlat.load("my_index.edda")
print(len(loaded))  # 3

See examples/ for more usage scenarios.

Roadmap

  • v0.1 (current) brute-force flat index, persistence, Python bindings, save/load.
  • v0.2 HNSW index for sub-linear search, benchmarks against hnswlib and FAISS on standard ANN datasets.
  • v0.3 filtered search with metadata, batch deletions.
  • Later MCP server (rebuild after API stabilizes), additional distance metrics, multi-threading.

Development

Requires Zig 0.15.2+, uv, and just.

Setup

git clone https://github.com/dmitryglhf/edda.git
cd edda
just build              # compiles the Zig core into the Python package
uv pip install -e .     # installs pyedda in editable mode

After modifying Zig code, run just build again to rebuild the native library.

Testing

just test               # runs both Zig unit tests and Python tests

Or run them separately:

zig build test          # Zig unit tests only
uv run pytest           # Python tests only

Releasing

Releases are automated via GitHub Actions. Two flows are available:

Dev release to TestPyPI for iterating on a version before the final release:

just bump-dev 0.1.3 1   # creates version 0.1.3.dev1
just release            # pushes commit and tag, triggers TestPyPI workflow
just test-install 0.1.3.dev1   # installs from TestPyPI in a fresh venv and smoke-tests

Production release to PyPI for the final stable version:

just bump 0.1.3         # creates version 0.1.3
just release            # pushes commit and tag, triggers PyPI workflow
just test-install-prod 0.1.3

License

MIT

Metadata

Release files for pyedda 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyedda 0.1.2
File Size Uploaded
pyedda-0.1.2.tar.gz 78.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyedda 0.1.2
File
pyedda-0.1.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyedda-0.1.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pyedda-0.1.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyedda-0.1.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyedda-0.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pyedda-0.1.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyedda-0.1.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyedda-0.1.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pyedda-0.1.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyedda-0.1.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyedda-0.1.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
pyedda-0.1.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 3.9 MB

Release files / pyedda-0.1.2.tar.gz

Download URL pyedda-0.1.2.tar.gz
Size 78.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ab06f30506e46f32c02319d02b424e83ab1c12cae3b0d547df550ede8faf0ac4
BLAKE2b-256 checksum
How to use checksums
c813eaeaf69e6fd344ba2fb6700d12d43b48611cbf5874ac5c21817a90c07d74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp313-cp313-win_amd64.whl

Download URL pyedda-0.1.2-cp313-cp313-win_amd64.whl
Size 182.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bc3be19cc7b0c212838e711fe48bd4feef0e69a83bf825534278397edaa9e8bf
BLAKE2b-256 checksum
How to use checksums
6d95f77f197d23441f4dc3d5fe062cab880f02edcbd7ba011b4ad2e0ad3b1e42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyedda-0.1.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 674.7 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1d10bb2f2d2950a6bfc89d061a0f4a7a33fe77bd8ef46d85c567e5828049a8e6
BLAKE2b-256 checksum
How to use checksums
ac46a979a28f7dbc1ca1b3bf06d39d7860b1f0d67b1cdda78b273fcd4ab1dd0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyedda-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Size 108.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0ab49573700a8d5122b092a4f2fa048caa03b0c08b3a6e2e41164bfb850c9dd1
BLAKE2b-256 checksum
How to use checksums
b6e757b069d3c60fb8ec46a8f04edf066989066d807bc96b96d54324239ddb52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp312-cp312-win_amd64.whl

Download URL pyedda-0.1.2-cp312-cp312-win_amd64.whl
Size 182.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
98c5a332d104722f4249d5e3d529ccbd2485875b48d2eb6ba12cefcf35207162
BLAKE2b-256 checksum
How to use checksums
e05d3e1fe1e74c643f635c3c43f66f58a090e8affb1a2dca02cb511cfc244de6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyedda-0.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 674.7 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6a5075520ebf6a6fd1ee002d59e321c281139182dbbd8b34c9d0bd38d5c7b6dc
BLAKE2b-256 checksum
How to use checksums
d07b27791ff7f22d7f571ab3e49f3b94fcb5d7226a08b2d00e0c435e24381693
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyedda-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Size 108.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d89b9da059fb53cd70e7481d4217ef03645d1c520c53a3f81184acccd276028b
BLAKE2b-256 checksum
How to use checksums
4f524db27ea12afb546a4c30316adc8c5e168405dc2fe6a993bcc28f94e0dd26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp311-cp311-win_amd64.whl

Download URL pyedda-0.1.2-cp311-cp311-win_amd64.whl
Size 182.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2a95f304c23d009dcc7dc7e9eb124592c6db34d4f3e5547046a822abbcb2e5fe
BLAKE2b-256 checksum
How to use checksums
83c3e9b873ab6f3136e58748e0db29886eeb5e0231ada48d8c1f47efb848a5a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyedda-0.1.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 674.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6bf354936478fe2da1af342f3817ee959c1621204e838f7dacaf457900be12ab
BLAKE2b-256 checksum
How to use checksums
5906108aa58ee73a653d15895fca28a1e50e65d024285edcbb6fec54a2e2f03c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyedda-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Size 108.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d6d70e13ae13abbe141468d640924c5910177467de1a7e865542a5e746ebf2ab
BLAKE2b-256 checksum
How to use checksums
612b5fbc6511a319f075c8cb74aed5c93fd10536b16c266f7ce0a78eac248a34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp310-cp310-win_amd64.whl

Download URL pyedda-0.1.2-cp310-cp310-win_amd64.whl
Size 182.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e40672605fd68b23ebce4a13e29464357e26363165874daa80f96fa5fd6824e6
BLAKE2b-256 checksum
How to use checksums
fc1a2e3558119b0b832a36587fb3c6728c8d5cdc1f4f5e1781977d0bd0be7b9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyedda-0.1.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 674.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c13ff4bfe6806c3110b402f65857c497ff604e7df93f7a6ec6e945bc2434019c
BLAKE2b-256 checksum
How to use checksums
b26cf87d6bfa8d822fe2c25ff1a8780aee18631320326478511bb2a224a1bb30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pyedda-0.1.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL pyedda-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Size 108.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fca251d0a3473228c65b0afb9e7829aca2cfe335e1159774541145638583453c
BLAKE2b-256 checksum
How to use checksums
85b4fc2123d530da7085acb8482ddd1313dd77997b2e3d8967fbd754df2b6b90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

13 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page