edgequake

Library Listed

Rust SDK for the EdgeQuake RAG platform

Checked · Sources

Downloads
11
Dependents
0
Stars
2,297
Forks
276
Contributors
14
Commits
898
Latest release
0.4.1 ·

About

From the project README ·

Graph-RAG in Rust: one binary, one Postgres, any LLM — cloud or fully local.
Turn documents into a knowledge graph and get answers with sources, not just similar chunks.

EdgeQuake: upload documents, explore the knowledge graph, ask questions

Quick start · Pick your LLM · How it works · Honest numbers · Docs


Quick start

Needs Docker. Nothing else to install: no Rust, no Node.js, no build.

curl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/quickstart.sh | sh

Then open http://localhost:3000. The wizard detects local servers (Ollama, LM Studio, oMLX, MLX-LM, llama.cpp) or takes an OpenAI / Anthropic key. Ports bind to 127.0.0.1 only.

# Headless / CI
quickstart.sh --yes --provider ollama
quickstart.sh --yes --provider omlx --base-url http://host.docker.internal:9050

Ask your first question (after dropping a PDF into the UI, or via the API):

curl -X POST http://localhost:8080/api/v1/documents/upload -F "file=@your-document.pdf"

curl -X POST http://localhost:8080/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{"query": "What are the main concepts?", "mode": "hybrid"}'

Heads-up: the Ollama path pulls chat and embedding models (multiple GB the first time). Use a cloud key if you want the fastest first answer.

Read the full README
ServiceDocker quickstartmake dev
Web UIhttp://localhost:3000http://localhost:3010
REST API / Swaggerhttp://localhost:8080 · /swagger-uisee make status
Healthhttp://localhost:8080/healthsee make status

Pin a version: EDGEQUAKE_VERSION=0.40.7 sh quickstart.sh. More options: Docker deployment options · Enable login.


Pick your LLM

EdgeQuake is not tied to one vendor. Configure a Connection (URL + key, encrypted at rest) in Settings → Connections, or by environment variable.

You wantUseGuide
Best quality, no hardwareOpenAI, Anthropic, Gemini, Mistralproviders
Private, runs on your Mac/PCOllama, LM Studio, oMLX, MLX-LM, llama.cpp, vLLM-MLXOllama · oMLX
Cloud LLM + local embeddingsHybrid (EDGEQUAKE_EMBEDDING_PROVIDER)model roles
Your own gatewayAny OpenAI- or Anthropic-shaped servergeneric

Each workspace can assign a different model to every role (extract, query, keyword, summary, embedding, vision). POST /api/v1/providers/test and edgequake doctor tell you what is actually reachable instead of guessing.

Connections, doctor, and encrypted keys land with v0.33.0 (schema 169, already on main). See upgrade-to-0.33.0.


Why Graph-RAG

Vector search finds similar text. It struggles when the answer lives in the relationships between things: "who reports to whom", "which contract affects which product", "what themes run across these 200 papers".

EdgeQuake implements the LightRAG algorithm in Rust. Documents become entities and relationships; at query time it combines vector search with graph traversal.

How it works

Document ─► chunks ─► LLM entity + relation extraction ─► knowledge graph
                                                   │            │
                                          pgvector (embeddings) + Apache AGE (graph)
                                                   │            │
Question ─► keywords ─► vector search + graph walk ─► LLM ─► answer with sources
ModeBest for
naiveKeyword-like lookups
localSpecific entities and their neighbours
globalThemes and high-level questions
hybrid (default)Balanced, comprehensive answers
mixWeighted vector + graph blend
bypassDirect LLM, no retrieval

Details: feature tour · LightRAG deep dive · architecture.


Honest numbers

We publish what we measured, including where we tie. Benchmark: GraphRAG-Bench medical-mid, EdgeQuake vs LightRAG, same corpus and models (make bench, n=200).

MetricEdgeQuakeLightRAG (Python)Verdict
Answer accuracy (Acc)0.7920.786Statistical tie (95% CI includes 0)
Cold query p504447 ms4359 ms≈ tied (1.02×)
Warm query p50 (LLM + embed cache)82 ms993 msEdgeQuake faster when cached
Evidence recall0.9320.949LightRAG ahead

So the pitch is not "more accurate than LightRAG". It is the same retrieval quality, productionised: a single Rust binary, Postgres as the only datastore, multi-tenant isolation, auth, a web UI, MCP, SDKs, and explicit, tested upgrades. Methodology and caveats: EQ vs LightRAG · vs GraphRAG · vs traditional RAG.


Built for production

  • One datastore for the graph. PostgreSQL 16/17/18 with pgvector. No separate vector DB or graph DB to run. PDF bytes, uploads, page images, and extracted markdown can move to a private bucket. Text and chunks stay in Postgres. The default is still the database. See originals.
  • Safe upgrades. The API never migrates your database. edgequake migrate is explicit, progressive, and replay-tested from every published release (SPEC-150, upgrading).
  • Secure defaults. Quickstart binds to loopback; secrets are generated; connection keys are AES-256-GCM encrypted and write-only (SECURITY.md, SPEC-163).
  • Multi-tenant. Fail-closed workspace isolation for query, delete, and recovery. Built-in auth, SSO (Keycloak/OIDC), and audit logging.
  • PDF vision pipeline. Text mode by default (pdfium embedded); vision mode for tables, scans, and complex layouts, with automatic fallback.
  • Honest health. /health probes real providers; edgequake doctor checks DB, schema, roles, and security posture.
  • Multi-arch images. linux/amd64 + linux/arm64 on GHCR, every release.

Integrations

SDKsPython · TypeScript · Rust · Go, Java, Kotlin, C#, PHP, Ruby, Swift
AI agentsMCP server
AppsOpenWebUI · LangChain
APIOpenAPI 3.0, SSE streaming, batch ingestion · REST reference

Documentation

I want to…Read
Click through the appVisual tour — every screen, in plain English, with pictures from the public demo
Get runningGetting started · First RAG app
Choose / configure a modelProviders · Env reference
DeployDeployment · Docker options · Configuration
UpgradeUpgrading · What's new · CHANGELOG
OperateMonitoring · Runtime auth · Originals · Troubleshooting
UnderstandArchitecture · Deep dives · FAQ

Contributing

Contributions are welcome, from typo fixes to new providers. Start with CONTRIBUTING.md; for a local build run make install && make dev (see AGENTS.md and the pre-delivery checklist).

Acknowledgments

EdgeQuake implements the LightRAG algorithm by Zirui Guo, Lianghao Xia, Yanhua Yu, Tu Ao, and Chao Huang. Also inspired by Microsoft's GraphRAG.

License

Apache License 2.0, see LICENSE. Copyright 2024-2026 Raphaël MANSUY

Star History

Runs on
GPU support unknown
What shows it
  • no dependency or feature matches a backend row
Native code
None found
  • No native code found
Python bindings
No Python binding crate found
License
Apache-2.0

Compare with similar projects

Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.

edgequake beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
edgequake This page Listed

Rust SDK for the EdgeQuake RAG platform

11 downloads over 30 days 0 2,297 0.4.1 GPU support unknown No native code found Apache-2.0
rmcp Featured

Rust SDK for Model Context Protocol

12,149,426 downloads over 30 days 2,400 4,101 3.9.0 GPU support unknown No native code found Apache-2.0
rust-mcp-sdk Featured

An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects.

29,764 downloads over 30 days 51 199 2.0.0 GPU support unknown No native code found MIT

LangChain for Rust, the easiest way to write LLM-based programs in Rust

4,306 downloads over 30 days 4 1,362 8.0.0 GPU support unknown Binds native code: tree-sitter (feature tree-sitter), ort-sys (feature fastembed), ring (feature surrealdb), tree-sitter-language (feature tree-sitter). Build uses a native toolchain: cc (feature tree-sitter) MIT
yoagent Listed

The agent loop for Rust: stream from 7 LLM protocols, run tools, loop until done. Native or wasm32 (Cloudflare Workers).

2,027 downloads over 30 days 5 369 0.27.4 GPU support unknown No native code found MIT
opencrabs App Listed

The autonomous, self-improving AI agent. Single Rust binary. Every channel. Recommended: the 40MB prebuilt binary for macOS, Linux and Windows: https://github.com/opencrabs/opencrabs/releases

125 binary downloads per release Not applicable 1,027 0.5.15 GPU support unknown Binds native code: libsqlite3-sys, llama-cpp-sys-2, opusic-sys (feature local-tts), tree-sitter (feature code-graph), alsa-sys (feature local-stt) and 1 more MIT
axp App Listed

An open protocol that gives AI agents a secure, sandboxed place to run code and use tools — with lean context usage. AXP works alongside MCP

Not measured Not applicable 3 Not measured Not measured Not measured Apache-2.0
Why ListedNo archive, New or Featured rule places it, so it is Listed.

What it lacks for Featured

  • It has 0 active dependents and 0 new dependents in 365 days. Featured needs 11 active dependents or 9 new dependents in 365 days. The repository route reads 2,297 stars, 276 forks and 14 contributors. It needs 4,539 stars, 434 forks and 79 contributors together.

What else the check found

  • The last activity is on 6 Nov 2026, 3 days ago. The rules expect an update within 365 days. Dormancy rule

Exact rules: Listed, Featured library. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: version 0.4.1 base 300, capped at 5 releases = 250, raised to the 365-day floor: E = 365 days
  • dormancy: last activity 2026-11-06, 3 days ago, E = 365: active
  • featured: not featured: active_users 0 < 11 and new_adopters 0 < 9 and repository route stars 2297 (needs 4539), forks 276 (needs 434), contributors 14 (needs 79)
  • listed: listed: no archive, new or featured rule applies

Measurements and sources

Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.

Sources6 sources
Adoption0 active dependents, 0 new dependents in 365 days1 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependents0crates.io database dumpYes
New dependents (365 days)0crates.io database dumpYes
Peak active dependents0crates.io database dumpYes
Active dependents as a share of the peak1crates.io database dumpYes
Binary downloads per releaseNot measuredYes
MaintenanceLatest human commit: 3 days ago3 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2026-11-06GitHub repositoryYes
Latest release2026-10-11crates.io database dumpYes
First release2026-02-15crates.io database dumpYes
Latest version0.4.1crates.io database dumpYes
Days the oldest outside issue waits for a reply63GitHub repositoryYes
Maintainer replies over 365 days113GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageYes
Published docstruecrates.io database dumpYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityUnpatched vulnerabilities: none
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windownoneRustSec advisory databaseYes
RustSec unmaintained advisorynoneRustSec advisory databaseYes
Deprecation noticenonecrates.io database dumpYes
Deprecated requirementnonecrates.io database dumpYes
Distribution5 releases, 11 downloads over 30 days5 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases5crates.io database dumpYes
Downloads over 30 days11crates.io database dumpYes
Binary downloads over the last 3 releasesNot measuredYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasefalsecrates.io database dumpYes
Every version 0.0.xfalsecrates.io database dumpYes
Every version yankedfalsecrates.io database dumpYes
Crate deleted from crates.iofalsecrates.io database dumpYes
Repository2,297 stars, 276 forks, 14 contributors, 898 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars2297GitHub repositoryYes — one part of the repository route
GitHub forks276GitHub repositoryYes — one part of the repository route
Contributors with a GitHub account14GitHub contributorsYes — one part of the repository route
Commits on the default branch898GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseApache-2.0crates.io database dumpNo
Runs on, from listed crates and their direct dependenciesGPU support unknowncrates.io database dumpNo
What shows each backendno dependency or feature matches a backend rowcrates.io database dumpNo
Native code, from listed crates and their dependenciesNo native code foundcrates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directly0crates.io database dumpNo

Corrections and review history

Report a correction

No correction applies to this entry.

Judgments

A judgment enters only through an approved issue and a merged pull request.

No judgment applies to this entry.