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.

This project aims to build agentic memory and knowledge graph primitives for sqlite as a native C extension and also made available for Python, Node.JS and WASM.

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.

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.

Huginn and Muninn are the two ravens of Odin and their names translate to Thoughts and Memory.

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.4.0-py3-none-win_amd64.whl (1.3 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

sqlite_muninn-0.4.0-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.4.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: sqlite_muninn-0.4.0-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.4.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3f3f2c54e52e212b10a9213a014e81441a71a91828447a53784cba594f07d983
MD5 041111cb47ad55dbddd6b0ea699c000a
BLAKE2b-256 c785246667deaeb31d8330498c5d8fa546aa24028d19f3b96e0e24b8e7d092e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.4.0-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.4.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1a486fe4b8797a94bf1f77655e0bfd48cf3b6a410cd5ee5c6f1337779f34166a
MD5 865c03e738520a1854703013269a1d12
BLAKE2b-256 d63d741c32346a123ccfe6a746c470edcfd4e32b3eb61d5f67e0793d8f5ad3dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.4.0-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.4.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f4a0a3e892c5b3fd0b523cffc7d3954c2e8a2d6d8de0fd45d030eedcd31f8d88
MD5 0ba8181e926784d8ccf1210d0b85b1fa
BLAKE2b-256 60f961cac95cbe6072f1e28c380d04061aeb63e7942efe3d9288933aabeefe9a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.4.0-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.4.0-py3-none-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 1032d0e086dec4f6d43f9eb0027073a067c0389d806c636c9c70386a5a751f18
MD5 bf0117bc5f53ae0fba4fd6fd9601eb2f
BLAKE2b-256 de6fb26c37ebb21f309b46c4685301b0153891b9c30478c23f8b4cc2db64531d

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