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

Uploaded Python 3Windows x86-64

sqlite_muninn-0.3.2-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.2-py3-none-manylinux_2_17_aarch64.whl (1.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

sqlite_muninn-0.3.2-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.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: sqlite_muninn-0.3.2-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.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2fe0f003a4239ee69af09a913410f6a7a714b211e269311c4969db502edde67b
MD5 d350e94ca005dc3649214acb543ed9d2
BLAKE2b-256 2ac4f5e35d078553dcb9b6f827e96c0dcd3e9c90bcc252ab353628ebfdab9840

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.3.2-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.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1439d52dc5f07ffeae439df878e7bf71e03946005a65b2ad6e2e940dd36e1e07
MD5 1def104dba0216bd8595b4e9c7a52d5e
BLAKE2b-256 24f9a7a880d050708f040792b37faa8212d64bc8315cdfa8c8ba66ccb6abbd20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.3.2-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.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 60cc965615a26b134fce562ea140ad5d1c9d0fe6de95e0d1cbf25e857b7bb381
MD5 00f376dd0f21e6c767744eaa8c4fe7fe
BLAKE2b-256 f603d721838587c553fb452a7b8738b66c193c338e03eb7c0cf8cba85bcbdebe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite_muninn-0.3.2-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.2-py3-none-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 16829ac2a6f7370793ad3d2482d514e6c0f0725b3378fe496dbb2a685cf2c8cd
MD5 ae2a3ea352d367b3b2c21c657594c482
BLAKE2b-256 fc71b80b0fb00e0c3a0cf1545effdc46f5dfe3b562f51e32f9b3122e1297d700

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