Skip to main content

HNSW vector search + graph traversal + GGUF embeddings + Node2Vec for SQLite

Project description

sqlite-muninn

Muninn Raven Logo

Odin's mythic raven of Memory.

Huginn and Muninn fly each day over the wide world.
I fear for Huginn that he may not return,
yet I worry more for Muninn.

- Poetic Edda (Grimnismal, stanza 20)

Odin fears losing Memory more than Thought.

This project aims to build agentic memory and knowledge graph primitives for sqlite as a native C extension. It is an advanced collection of knowledge graph primitives like Vector Similarity Search, HNSW Indexes, Graph database, Community Detection, Node2Vec capabilities and loading GGUF models via llama.cpp integration.

Documentation | GitHub

Package Index Published Version Downloads
PyPI PyPI PyPI Downloads
npm npm npm Downloads

Features

  • HNSW Vector Index - O(log N) approximate nearest neighbor search with incremental insert/delete
  • Graph Traversal - BFS, DFS, shortest path, connected components, PageRank on any edge table, dbt syntax graph node selection.
  • llama.cpp native models; Load and use GGUF LLM models natively in sqlite.
  • Centrality Measures - Degree, betweenness (Brandes), and closeness centrality with weighted/temporal support
  • Community Detection - Leiden algorithm for discovering graph communities with modularity scoring
  • Node2Vec - Learn structural node embeddings from graph topology, store in HNSW for similarity search
  • Zero dependencies - compiles to a single .dylib/.so/.dll
  • SIMD accelerated - ARM NEON and x86 SSE distance functions

Research References

Feature Paper
HNSW Malkov & Yashunin, TPAMI 2020
MN-RU insert repair arXiv:2407.07871, 2024
Patience early termination SISAP 2025
Betweenness centrality Brandes, J. Math. Sociol. 2001
Leiden community detection Traag, Waltman & van Eck, Sci. Rep. 2019
Node2Vec Grover & Leskovec, KDD 2016
SGNS Mikolov et al., 2013

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sqlite_muninn-0.3.1-py3-none-win_amd64.whl (1.3 MB view details)

Uploaded Python 3Windows x86-64

sqlite_muninn-0.3.1-py3-none-manylinux_2_17_x86_64.whl (1.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

sqlite_muninn-0.3.1-py3-none-manylinux_2_17_aarch64.whl (1.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

sqlite_muninn-0.3.1-py3-none-macosx_11_0_universal2.whl (3.0 MB view details)

Uploaded Python 3macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file sqlite_muninn-0.3.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: sqlite_muninn-0.3.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sqlite_muninn-0.3.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 950cb82d5caf050cd4297de481326e2744ce493691a0b75547db4ad873facd6b
MD5 466a642ca2a6b78751754a6c190e73b3
BLAKE2b-256 9098427d2108e69d533a51beca4df450add3e69da9b93932ccdbf2bd6d0334a2

See more details on using hashes here.

File details

Details for the file sqlite_muninn-0.3.1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

  • Download URL: sqlite_muninn-0.3.1-py3-none-manylinux_2_17_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sqlite_muninn-0.3.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a1dda2f177b712766f89bbe541427136a806bba7ef881caeec277fd3c4925362
MD5 29f688382fdb96ad2d33203d44746f43
BLAKE2b-256 7ec6e995720553bdc0ba1714a2d945af404fb7787ae6a1fd711cade9ce7726de

See more details on using hashes here.

File details

Details for the file sqlite_muninn-0.3.1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

  • Download URL: sqlite_muninn-0.3.1-py3-none-manylinux_2_17_aarch64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sqlite_muninn-0.3.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 88cc0f123ccd7e36b3f8917fb2efd31119a1d327c0c820b6918e2d1ce073d020
MD5 07acf1033d7953ce4a5fca49bf0d0bc4
BLAKE2b-256 0b2739706fdebd73f44392f9c0ad78604b80e9f09bec4d8853f4174171a6e782

See more details on using hashes here.

File details

Details for the file sqlite_muninn-0.3.1-py3-none-macosx_11_0_universal2.whl.

File metadata

  • Download URL: sqlite_muninn-0.3.1-py3-none-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3, macOS 11.0+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sqlite_muninn-0.3.1-py3-none-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 41ed02cc7fb822f686045852c6b417b538d22ca4f8621ba4b4b91b1cb98ed9bb
MD5 89c5820cd4c9ad3a13ca6612653ac016
BLAKE2b-256 26e0c7e690a9071c077fe7dc3b8cec423f05aec3acca9f2a9ac68192af77705c

See more details on using hashes here.

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