LinkingMem — Graph-native RAG Engine

LinkingMem — Graph-native RAG Engine

khapu2906 · Coding · Leaning

LinkingMem is a graph-native RAG engine that runs as a self-hosted Docker service and links vector search with graph traversal so an LLM can answer questions from your own documents. Instead of matching text chunks by similarity alone, it walks the edges between entities to pull related facts into one grounded answer. That's the whole idea. If you want a RAG pipeline you control end to end, on your own hardware, this is built for that.

Interface preview of LinkingMem — Graph-native RAG Engine

About LinkingMem — Graph-native RAG Engine

What Is LinkingMem

LinkingMem is a retrieval engine for building question-answering systems on private data. It pairs a Rust compute core with Python plugins, and it treats the knowledge graph as a first-class part of retrieval rather than an afterthought. A query enters the pipeline, gets embedded, hits an HNSW vector index, and then expands through graph edges before the LLM writes the final answer. That order matters. The graph step is what lets it connect facts that don't share vocabulary.

The engine ships as a Docker image, so you run it yourself. Text and image handling live in separate plugins you can start or skip, and the LLM client speaks the OpenAI-compatible protocol. Pick your backend. OpenAI, Ollama, Groq and Gemini-compatible endpoints all work, which is useful when you want to keep inference local.

The main catch is the setup cost. LinkingMem expects Rust 1.80+ and Python 3.11+, and you're responsible for wiring the config, the LLM key and the data files. It's a developer tool, not an app you install and forget.

Getting Started

  1. Pull the Docker image from Docker Hub (khapu2906/linkingmem) or clone the repository and install Rust 1.80+ and Python 3.11+ with uv.
  2. Copy .env.example to .env, then set at least OPENAI_API_KEY; point OPENAI_BASE_URL at Ollama or another compatible provider if you'd rather run locally.
  3. Review plugins.toml to decide which plugins to launch (the text plugin on port 8001, the image plugin on port 8002) and how the query pipeline is ordered.
  4. Ingest your documents with the POST /ingest/text or POST /ingest/json endpoints to build the nodes, edges and vectors.
  5. Send a question to POST /query and read the grounded LLM answer, or use POST /query/multihop when you need the engine to follow several hops.

Product Information

A quick look at LinkingMem — Graph-native RAG Engine's pricing, supported platforms, and performance.

Free PlanYes
Paid Plans$0
PlatformSelf-hosted (Docker; Rust 1.80+ and Python 3.11+ for source builds)
Developerkhapu2906
CategoryCoding · Leaning
Release DateMay 2025
Latest UpdatedSep 2025
Website Visits3.1M
Website Global RankN/A
API AvailabilityYes

Best for

The users, tasks, and scenarios where this tool fits best.

Users

  • Backend and AI engineers
  • Teams with private documents
  • Developers testing graph RAG ideas

Tasks

  • Building a question-answering service over internal docs
  • Multi-hop questions
  • Mixing image and text retrieval

Scenarios

  • Running a private knowledge base on your own server
  • Prototyping a retrieval backend before committing to a managed service
  • Adding grounding to an LLM you already host

Key features

Hybrid vector and graph retrieval

LinkingMem runs a two-stage retrieval pipeline. A query is embedded and matched against an HNSW vector index for fast nearest-neighbor search, then results expand through graph edges using breadth-first traversal. The vector step finds the entry points. The graph step gathers the surrounding context. For questions that hinge on relationships between entities, that second stage is often what makes the answer correct.

Multi-hop reasoning endpoint

The engine exposes a dedicated /query/multihop endpoint that follows several hops across the knowledge graph before generating an answer. This is aimed at questions no single document answers, where the model has to combine facts from different nodes. You get a chain of linked evidence rather than a single matching chunk.

Modular text and image plugins

Text embedding, entity extraction and answer generation live in a Python text plugin on port 8001, while image storage and embedding run in a separate plugin on port 8002. You can start only what you need. The image plugin offers two backends: a vision-LLM caption mode that shares the text vector space, or a CLIP encoder for true visual similarity without an LLM call.

OpenAI-compatible LLM client

The LLM client speaks the OpenAI-compatible API, so you can plug in OpenAI, Ollama, Groq, Gemini-compatible endpoints and similar services. Swapping providers is a config change, not a code change. Need local inference? The Ollama path handles that.

Rust core with a crash-safe delta store

The compute layer is written in Rust and serves an HTTP API on port 8000. It includes an LSM-style delta store with a write-ahead log and file locking, so ingested changes survive a restart. A concurrent embedding cache (moka) and a result cache cut repeated work on common queries.

Built-in observability and auth

The admin endpoints expose /health, /metrics, /graph/stats and node listings, and metrics come in a Prometheus-compatible format. API key auth and a token-bucket rate limiter sit in the middleware. That's one less layer to build. You can put the engine in front of more than one client right away.

Pros and cons

Pros

  • Self-hosted by default, so private documents stay on your own infrastructure.
  • Graph expansion handles multi-hop questions that plain vector search tends to miss.
  • OpenAI-compatible LLM client means you can run inference locally through Ollama.
  • Modular plugins let you skip image support or text features you don't need.
  • Open source, with the full Rust core and Python plugins available to read and change.

Cons

  • Setup is developer-grade: you need Docker plus Rust 1.80+ and Python 3.11+ to build from source, which rules out non-technical users.
  • No hosted plan or web dashboard, so you're responsible for hosting, scaling and uptime.
  • Documentation is code-first, meaning you'll spend time reading the repo and config files before your first query works.

Frequently asked questions

It's a retrieval engine that answers questions from your own documents by combining vector search with graph traversal, then passing the retrieved context to an LLM. The graph step is what separates it from a basic chunk-matching RAG setup.

Related content

Explore related tools, skills, and articles for LinkingMem — Graph-native RAG Engine.

LinkingMem — Graph-native RAG Engine Alternatives

Forefront

Forefront

Forefront · Coding

Forefront is a web platform for building with open-source AI. It lets you fine-tune leading open-source language models on your own data, evaluate how they perform, and run them through an API or export them to host yourself. Developers who want the convenience of a closed-source platform but insist on owning their models and data are the target audience here.

Free / $0 - $99/moView details
Startkit

Startkit

StartKit.AI · Coding

Startkit is a boilerplate for building AI SaaS and AI wrapper products. Think of it as an AI startup boilerplate with the boring parts already wired up: authentication, Stripe and Lemon Squeezy payments, usage limits, transactional email, and an AI API starter that talks to OpenAI, Anthropic, Groq, or Llama. You clone the repo, set your price, and start on the part of your product that people actually pay for. It's Next.js under React and Tailwind, so most of the boilerplate code already feels familiar.

Paid / $99 - $499 one-timeView details
Testim

Testim

Tricentis · Coding

Testim is an AI-powered test automation platform for building and running end-to-end tests across web, mobile, and Salesforce applications. It leans on machine learning to keep tests stable when an interface changes, so teams spend less time fixing broken selectors. Not bad for an automated testing tool you can start using today. You create tests by recording actions in a browser, then optionally add JavaScript when you need more control. It's a solid pick for busy QA teams.

Free / Custom pricing on requestView details