[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83536":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":21,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},83536,"edgequake","raphaelmansuy\u002Fedgequake","raphaelmansuy","EdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation","https:\u002F\u002Fedgequake.com",null,"Rust",2000,230,14,11,0,29.09,"Apache License 2.0",false,"edgequake-main",true,[23,24,25,26],"graphrag","knowledge-graph","lightrag","rag","2026-06-12 02:04:34","# EdgeQuake\n\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F20893\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F20893\" alt=\"raphaelmansuy%2Fedgequake | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\n> **High-Performance Graph-RAG Framework in Rust**  \n> Transform documents into intelligent knowledge graphs for superior retrieval and generation\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.12.7-blue.svg?style=flat)](CHANGELOG.md)\n[![Rust](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frust-1.95+-orange.svg?style=flat&logo=rust)](https:\u002F\u002Fwww.rust-lang.org)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg?style=flat)](LICENSE)\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-brightgreen.svg?style=flat)](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-available-blue.svg?style=flat)](docs\u002FREADME.md)\n\n> **v0.12.7** — SPEC-006 resource safety (P0–P9): bounded graph ops, materialization guard, migration 038, production delivery checklist. SPEC-018 observability: structured logs, metrics, OTLP\u002FJaeger. See [CHANGELOG](CHANGELOG.md).\n\n## Release & CD Cycle\n\nUse this sequence to cut a release with a deterministic quality gate and publish pipeline.\n\n### 1) Local release gates (must pass before tag)\n\n```bash\nmake stop\nmake spec013-proof-pr\ncd edgequake && cargo clippy -p edgequake-pipeline -p edgequake-core -p edgequake-api --all-targets --features postgres -- -D warnings\ncd ..\u002Fedgequake_webui && pnpm exec tsc --noEmit\ncd .. && make backend-bg frontend-bg && make spec013-proof-ui\n```\n\n### 2) CI validation (GitHub Actions)\n\n- `SPEC-013 PR Proof` must be green on the target branch\u002FPR.\n- Core CI workflows (`CI`, `Test Quality Gates`, integration tests) must be green.\n- Ignore unrelated external automation failures (for example Dependabot noise) only if all required project gates are green.\n\n### 3) Cut release (CD publish)\n\n```bash\n# Example\ngit tag v0.12.4\ngit push origin v0.12.4\n```\n\nThis triggers `.github\u002Fworkflows\u002Frelease-docker.yml`, which:\n- builds\u002Fpublishes multi-arch API, frontend, and postgres images to GHCR\n- creates\u002Fupdates the GitHub Release notes for that tag\n\n### 4) Post-publish verification\n\n```bash\ngh release view v0.12.4\ndocker buildx imagetools inspect ghcr.io\u002Fraphaelmansuy\u002Fedgequake:0.12.4\ndocker buildx imagetools inspect ghcr.io\u002Fraphaelmansuy\u002Fedgequake-frontend:0.12.4\ndocker buildx imagetools inspect ghcr.io\u002Fraphaelmansuy\u002Fedgequake-postgres:0.12.4\n```\n\n---\n\n![Screenshot of EdgeQuake Frontend](docs\u002Fassets\u002F01-screenshot.png)\n\n## Why EdgeQuake?\n\nTraditional RAG systems retrieve document chunks using vector similarity alone. This works for simple lookups but fails on multi-hop reasoning (\"How does X relate to Y through Z?\"), thematic questions (\"What are the major themes?\"), and relationship queries. The core problem: **vectors capture semantic similarity but lose structural relationships between concepts**.\n\n**EdgeQuake** solves this by implementing the [LightRAG algorithm](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779) in Rust: documents are not just chunked and embedded — they are decomposed into a **knowledge graph** of entities and relationships. At query time, the system traverses both the vector space and the graph structure, combining the speed of vector search with the reasoning power of graph traversal.\n\n### What Sets EdgeQuake Apart\n\n- **Knowledge Graphs**: LLM-powered entity extraction and relationship mapping create a structured understanding of your documents — not just keyword matching\n- **6 Query Modes**: From fast naive vector search to graph-traversing hybrid queries, each mode optimizes for different question types\n- **Rust Performance**: Async-first Tokio architecture with zero-copy operations — handles thousands of concurrent requests\n- **PDF LLM Vision Pipeline ✅ NEW in 0.4.0**: Multimodal LLMs (GPT-4o, Claude, Gemini) read PDF pages as images — handles scanned documents, complex tables, and multi-column layouts out of the box\n- **Production Ready**: OpenAPI 3.0 REST API, SSE streaming, health checks, fail-closed multi-tenant workspace isolation for query\u002Fdelete flows, and workspace-scoped destructive\u002Frecovery operations\n- **Modern Frontend**: React 19 with interactive Sigma.js graph visualizations\n\n### Performance Benchmarks\n\n| Metric                 | EdgeQuake        | Traditional RAG | Improvement |\n| ---------------------- | ---------------- | --------------- | ----------- |\n| Entity Extraction      | ~2-3x more       | Baseline        | 3x          |\n| Query Latency (hybrid) | \u003C 200ms          | ~1000ms         | 5x faster   |\n| Document Processing    | 25s (10k tokens) | ~60s            | 2.4x faster |\n| Concurrent Users       | 1000+            | ~100            | 10x         |\n| Memory Usage (per doc) | 2MB              | ~8MB            | 4x better   |\n\n> **v0.4.0 — PDF is now Production Ready**: The PDF pipeline ships with embedded pdfium (zero-config) and an opt-in LLM vision mode. Text-mode extraction works for all standard PDFs; enable `use_vision_llm = true` (or send `X-Use-Vision: true`) to route pages through your vision-capable LLM for scanned documents and complex layouts.\n\n> **v0.4.0 Update**: PDF processing is now **production-ready** with embedded pdfium via `edgequake-pdf2md v0.4.1`. No external library setup required — just upload your PDFs!\n\n---\n\n## Features\n\n### 🚀 High Performance\n\n- **Async-First**: Tokio-based runtime for maximum concurrency\n- **Zero-Copy**: Efficient memory management with Rust ownership\n- **Parallel Processing**: Multi-threaded entity extraction and embeddings\n- **Fast Storage**: PostgreSQL AGE for graph + pgvector for embeddings\n- **SQL Pre-Filtering**: Metadata filters (tenant, workspace, document) pushed to SQL WHERE clauses with GIN + B-tree indexes — up to 90% fewer wasted vector scans at scale\n\n### 💉 Knowledge Injection ✨ **NEW in 0.8.0** ([#131](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake\u002Fissues\u002F131))\n\n- **Domain Glossaries**: Inject acronym definitions (OEE, NLP, ML) and synonym mappings that expand query terms automatically\n- **Invisible Citations**: Injection entries enrich the knowledge graph but are **never shown as source citations** in query results\n- **Full CRUD API**: `PUT`, `GET`, `PATCH`, `DELETE` per workspace — `POST \u002Fapi\u002Fv1\u002Fworkspaces\u002F:id\u002Finjection\u002Fupload` for file-based injection\n- **Text & File Input**: Accept plain-text definitions or upload `.txt`\u002F`.md` glossary files\n- **Status Polling**: Background processing with entity count tracking and `completed`\u002F`failed`\u002F`processing` status\n- **Dedicated UI**: `\u002Fknowledge` page with list view, inline editing, delete confirmation, and entity count display\n- **Query Expansion**: Automatically expands queries using injected synonyms before vector search\n\n### 🏷️ Custom Entity Configuration ✨ **NEW in 0.9.0** ([#85](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake\u002Fissues\u002F85))\n\n- **Domain Presets**: Choose from 6 curated presets — General, Manufacturing, Healthcare, Legal, Research, Finance\n- **Up to 50 Entity Types**: Configure up to 50 domain-specific types per workspace (raised from 20)\n- **Custom Types**: Add any UPPERCASE_UNDERSCORED entity type beyond the preset (e.g. `BEARING_TYPE`, `VIBRATION_ANOMALY`)\n- **Per-Workspace Config**: Entity types are set at workspace creation and stored in workspace metadata\n- **Auto-Normalization**: Input is trimmed, uppercased, and deduplicated before storage\n- **Live UI Selector**: Collapsible entity-type section in workspace creation dialog with chip display and count badge\n- **Backward Compatible**: Existing workspaces without custom config automatically use the 9 default general types\n\n### Knowledge Graph\n\n- **Entity Extraction**: Automatic detection of people, organizations, locations, concepts, events, technologies, and products (7 configurable types)\n- **Relationship Mapping**: LLM-powered relationship identification with keyword tagging\n- **Gleaning**: Multi-pass extraction catches 15-25% more entities than single-pass\n- **Community Detection**: Louvain modularity optimization clusters related entities for thematic queries\n- **Graph Visualization**: Interactive Sigma.js-powered frontend with zoom\u002Fpan\n\n### 📄 PDF Processing (Production Ready in v0.4.0)\n\n- **Text Mode**: Fast pdfium-based extraction for standard PDFs (default, zero-config)\n- **Vision Mode** ✨: LLM reads each page as an image — GPT-4o, Claude 3.5+, Gemini 2.5 supported\n- **Automatic Fallback**: Vision failures gracefully fall back to text extraction (BR1010)\n- **Safe Large-PDF Guardrails**: Adaptive DPI\u002Fconcurrency limits and early byte release reduce memory spikes and make local-model ingestion more reliable for large files\n- **Restart-Safe Recovery**: Deleted or cancelled PDFs do not reappear from stale background jobs after a server restart\n- **Fail-Closed Query Isolation**: Invalid or missing explicit workspace selectors are rejected instead of being silently remapped to defaults\n- **Safer Dev Service Checks**: Health\u002Fstatus flows now rely on lightweight database port checks first, which is less disruptive when Docker\u002FOrbStack is unavailable\n- **Table Reconstruction**: Vision mode recovers complex tables that text parsers mangle\n- **Multi-Column Layout**: LLM understands reading order across multi-column pages\n- **Embedded pdfium**: No `PDFIUM_DYNAMIC_LIB_PATH` env var needed — binary ships inside the binary\n\n### 🔍 6 Query Modes\n\n1. **Naive**: Simple vector similarity — fastest for keyword-like lookups (~100-300ms)\n2. **Local**: Entity-centric with local graph neighborhood — best for specific relationships (~200-500ms)\n3. **Global**: Community-based semantic search — best for thematic\u002Fhigh-level questions (~300-800ms)\n4. **Hybrid** _(default)_: Combines local + global for balanced, comprehensive results (~400-1000ms)\n5. **Mix**: Weighted combination of naive + graph results with configurable ratios\n6. **Bypass**: Direct LLM query without RAG retrieval — useful for general questions\n\n### 🌐 REST API\n\n- **OpenAPI 3.0**: Full Swagger documentation at `\u002Fswagger-ui`\n- **Streaming**: Server-Sent Events (SSE) for real-time responses\n- **Versioned**: `\u002Fapi\u002Fv1\u002F*` with backward compatibility\n- **Batch Ingestion APIs** ✨: `POST \u002Fapi\u002Fv1\u002Fdocuments\u002Fupload\u002Fbatch` and `POST \u002Fapi\u002Fv1\u002Fdocuments\u002Fpdf\u002Fbatch` for multi-file and multi-PDF ingestion with per-file status reporting\n- **Health Checks**: Kubernetes-ready `\u002Fhealth`, `\u002Fready`, `\u002Flive`\n- **Safer Local Startup**: Make-based development uses the standard UI port 3000 when available and auto-selects the next free port only if another local stack is already using it\n- **Runtime Auth Hardening** ✨: prebuilt WebUI images now consume runtime API\u002Fauth config, and protected dashboard routes fail closed when authentication is enabled\n\n### 🎯 React 19 Frontend\n\n- **Real-Time Streaming**: Token-by-token generation display\n- **Graph Visualization**: Interactive network graph with zoom\u002Fpan\n- **Document Upload**: Drag-and-drop with progress tracking\n- **Configuration UI**: Visual PDF processing config builder\n\n### 🔌 MCP (Model Context Protocol)\n\n- **Agent Integration**: Expose EdgeQuake capabilities to AI agents via [MCP](https:\u002F\u002Fmodelcontextprotocol.io\u002F)\n- **Tool Discovery**: Agents can query, upload, and explore knowledge graphs programmatically\n- **Interoperability**: Works with Claude, Cursor, and other MCP-compatible clients\n\nSee [mcp\u002F](mcp\u002F) for server implementation details.\n\n---\n\n## Quick Start\n\n### ⚡ Option 1 — One Command (Docker, ~30s, no build required)\n\n> **Zero prerequisites beyond Docker.**  \n> No Rust, no Node.js, no `cargo build`, no `npm install`.\n\n```bash\n# Download and run the interactive setup wizard\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fraphaelmansuy\u002Fedgequake\u002Fedgequake-main\u002Fquickstart.sh | sh\n```\n\nThe wizard guides you through:\n1. **Provider selection** — choose OpenAI or Ollama (never guessed from environment variables)\n2. **Model selection** — pick your LLM + embedding model from a curated, priced menu\n3. **Validation** — API key check (OpenAI) or Ollama ping + model-availability check\n4. **Stack startup** — pulls images, starts services, and polls health for up to 90 seconds\n5. **Re-run aware** — detects running\u002Fstopped containers and existing data volumes; offers \"Update & Reconfigure\" or safe \"Fresh Start\" (requires typing `DELETE`)\n\n> For local Make-based development, the UI uses port 3000 by default and automatically moves to a safe free port if 3000 or 8080 are already occupied.\n\nOr with `docker compose` directly (pipe to compose):\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fraphaelmansuy\u002Fedgequake\u002Fedgequake-main\u002Fdocker-compose.quickstart.yml \\\n  | docker compose -f - up -d\n```\n\nOr download the compose file first, then start:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fraphaelmansuy\u002Fedgequake\u002Fedgequake-main\u002Fdocker-compose.quickstart.yml \\\n  -o docker-compose.quickstart.yml\ndocker compose -f docker-compose.quickstart.yml up -d\n```\n\n**Then open:** http:\u002F\u002Flocalhost:3000\n\n| Service | URL                              |\n| ------- | -------------------------------- |\n| Web UI  | http:\u002F\u002Flocalhost:3000            |\n| API     | http:\u002F\u002Flocalhost:8080            |\n| Swagger | http:\u002F\u002Flocalhost:8080\u002Fswagger-ui |\n| Health  | http:\u002F\u002Flocalhost:8080\u002Fhealth     |\n\n**Headless \u002F CI install (no interactive terminal):**\n\n```bash\n# OpenAI\nEDGEQUAKE_LLM_PROVIDER=openai \\\n  OPENAI_API_KEY=sk-... \\\n  docker compose -f docker-compose.quickstart.yml up -d\n\n# Mistral La Plateforme ✨ new in v0.11.0\nMISTRAL_API_KEY=... \\\n  docker compose -f docker-compose.quickstart.yml up -d\n```\n\n**Management:**\n\n```bash\ndocker compose -f docker-compose.quickstart.yml logs -f    # tail logs\ndocker compose -f docker-compose.quickstart.yml ps         # check status\ndocker compose -f docker-compose.quickstart.yml down       # stop\n```\n\n> **Pinned version:** `EDGEQUAKE_VERSION=0.10.8 sh quickstart.sh` to use a specific release.\n\n> Production auth\u002Fruntime deployment guidance is available in [docs\u002Foperations\u002Fruntime-auth-hardening.md](docs\u002Foperations\u002Fruntime-auth-hardening.md).\n\n---\n\n### 🛠️ Option 2 — Development Setup (Rust toolchain required)\n\n#### Prerequisites\n\n- **Rust**: 1.95 or later ([Install Rust](https:\u002F\u002Frustup.rs))\n- **Node.js**: 18+ or Bun 1.0+ ([Install Node](https:\u002F\u002Fnodejs.org))\n- **Docker**: For PostgreSQL ([Install Docker](https:\u002F\u002Fwww.docker.com\u002Fget-started))\n- **Ollama**: For local LLM (optional, [Install Ollama](https:\u002F\u002Follama.ai))\n\n#### Installation (5 minutes)\n\n```bash\n# 1. Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake.git\ncd edgequake\n\n# 2. Install dependencies\nmake install\n\n# 3. Configure the frontend environment\ncp edgequake_webui\u002F.env.local.example edgequake_webui\u002F.env.local\n\n# 4. Start the full stack in the default local mode (no authentication)\nmake dev\n\n# Optional: start the same stack with authentication enabled\nmake dev-auth\n```\n\n**That's it!** 🎉\n\n- **Backend**: http:\u002F\u002Flocalhost:8080\n- **Frontend**: http:\u002F\u002Flocalhost:3000 by default, or the next free port if 3000 is busy\n- **Swagger UI**: http:\u002F\u002Flocalhost:8080\u002Fswagger-ui\n- **Provider**: Ollama or OpenAI depending on your environment\n- **Auth**: disabled in make dev, enabled in make dev-auth\n\n### First Document Upload\n\n```bash\n# Upload a file (PDF, TXT, MD, etc.)\ncurl -X POST http:\u002F\u002Flocalhost:8080\u002Fapi\u002Fv1\u002Fdocuments\u002Fupload \\\n  -F \"file=@your-document.pdf\"\n```\n\n**Response**:\n\n```json\n{\n  \"id\": \"doc-123\",\n  \"status\": \"completed\",\n  \"chunk_count\": 15,\n  \"entity_count\": 12,\n  \"relationship_count\": 8,\n  \"processing_time_ms\": 2500\n}\n```\n\n### First Query\n\n```bash\n# Query the knowledge graph\ncurl -X POST http:\u002F\u002Flocalhost:8080\u002Fapi\u002Fv1\u002Fquery \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"query\": \"What are the main concepts?\",\n    \"mode\": \"hybrid\"\n  }'\n```\n\n**Response**:\n\n```json\n{\n  \"answer\": \"The main concepts are: knowledge graphs, entity extraction, and hybrid retrieval...\",\n  \"sources\": [\n    { \"chunk_id\": \"chunk-1\", \"similarity\": 0.92 },\n    { \"chunk_id\": \"chunk-5\", \"similarity\": 0.87 }\n  ],\n  \"entities\": [\"KNOWLEDGE_GRAPH\", \"ENTITY_EXTRACTION\"],\n  \"relationships\": [\n    {\n      \"source\": \"KNOWLEDGE_GRAPH\",\n      \"target\": \"ENTITY_EXTRACTION\",\n      \"type\": \"ENABLES\"\n    }\n  ]\n}\n```\n\n---\n\n## Architecture\n\n```\n┌────────────────────────────────────────────────────────────────────────────┐\n│                              EdgeQuake System                              │\n└────────────────────────────────────────────────────────────────────────────┘\n\n┌─────────────────────────────────────────────────────────────────────────────┐\n│  Frontend (React 19 + TypeScript)                                           │\n│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │\n│  │  Document    │  │    Query     │  │    Graph     │  │   Settings   │     │\n│  │   Upload     │  │  Interface   │  │ Visualization│  │   Config     │     │\n│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘     │\n│         │                 │                 │                 │             │\n│         └─────────────────┴─────────────────┴─────────────────┘             │\n│                                    │                                        │\n│                                    ▼                                        │\n│  ┌────────────────────────────────────────────────────────────────────┐     │\n│  │                         REST API (Axum)                            │     │\n│  │  \u002Fapi\u002Fv1\u002Fdocuments  •  \u002Fapi\u002Fv1\u002Fquery  •  \u002Fapi\u002Fv1\u002Fgraph             │     │\n│  │  OpenAPI 3.0 Spec  •  SSE Streaming  •  Health Checks              │     │\n│  └────────────────────────────────────────────────────────────────────┘     │\n└─────────────────────────────────────────────────────────────────────────────┘\n                                    │\n                                    ▼\n┌─────────────────────────────────────────────────────────────────────────────┐\n│  Backend (Rust - 11 Crates)                                                 │\n│  ┌──────────────────────────────────────────────────────────────────────┐   │\n│  │  edgequake-core          │  Orchestration & Pipeline                 │   │\n│  │  edgequake-llm           │  OpenAI, Anthropic, MiniMax, Ollama, etc. │   │\n│  │  edgequake-storage       │  PostgreSQL AGE, Memory adapters          │   │\n│  │  edgequake-api           │  REST API server                          │   │\n│  │  edgequake-pipeline      │  Document ingestion pipeline              │   │\n│  │  edgequake-query         │  Query engine (6 modes)                   │   │\n│  │  edgequake-pdf           │  PDF extraction (vision \u002F edgeparse)      │   │\n│  │  edgequake-auth          │  Authentication & authorization           │   │\n│  │  edgequake-audit         │  Compliance & audit logging               │   │\n│  │  edgequake-tasks         │  Background job processing                │   │\n│  │  edgequake-rate-limiter  │  Rate limiting middleware                 │   │\n│  └──────────────────────────────────────────────────────────────────────┘   │\n│                                    │                                        │\n│                    ┌───────────────┴───────────────┐                        │\n│                    ▼                               ▼                        │\n│  ┌─────────────────────────────┐   ┌──────────────────────────────────┐     │\n│  │   LLM Providers             │   │   Storage Backends               │     │\n│  │  • OpenAI (gpt-4.1-nano)    │   │  • PostgreSQL 15+ (AGE + vector) │     │\n│  │  • Anthropic (Claude)       │   │  • In-Memory (dev\u002Ftesting)       │     │\n│  │  • Mistral (mistral-small)  │   │  • Graph: Property graph model   │     │\n│  │  • MiniMax (MiniMax-M2.7)   │   │  • Vector: pgvector embeddings   │     │\n│  │  • Ollama (gemma3:12b)      │   │                                  │     │\n│  │  • LM Studio, xAI, Gemini   │   │                                  │     │\n│  │  Auto-detection via env     │   │                                  │     │\n│  └─────────────────────────────┘   └──────────────────────────────────┘     │\n└─────────────────────────────────────────────────────────────────────────────┘\n\n                    Data Flow: Document → Chunks → Entities → Graph\n                    Query Flow: Question → Graph Traversal → LLM → Answer\n```\n\n### How the Algorithm Works\n\nEdgeQuake implements the [LightRAG algorithm](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779) in Rust. The core insight: **extract a knowledge graph during indexing, then traverse it during querying**.\n\n**Indexing Pipeline** (per document):\n\n1. **Chunk** — Split document into ~1200-token segments with 100-token overlap\n2. **Extract** — LLM parses each chunk into `(entity, type, description)` and `(source, target, keywords, description)` tuples\n3. **Glean** — Optional second pass catches missed entities (improves recall by ~18%)\n4. **Normalize** — Deduplicate entities via case normalization and description merging (reduces duplicates by ~36-40%)\n5. **Embed** — Generate vector embeddings for chunks and entities\n6. **Store** — Write to PostgreSQL: chunks to pgvector, entities\u002Frelationships to Apache AGE graph\n\n**Query Flow** (6 modes):\n\n- **Naive** — Vector similarity on chunks only (fast, no graph)\n- **Local** — Find relevant entities via vector search, then traverse their local graph neighborhood\n- **Global** — Use Louvain community detection to find thematic clusters, retrieve community summaries\n- **Hybrid** _(default)_ — Combine local entity context + global community context\n- **Mix** — Weighted blend of naive vector results and graph-enhanced results\n- **Bypass** — Skip retrieval entirely, pass question directly to LLM\n\nSee [LightRAG Algorithm Deep Dive](docs\u002Fdeep-dives\u002Flightrag-algorithm.md) for the complete technical explanation.\n\n---\n\n## Documentation\n\n### 📚 Complete Documentation Index\n\nExplore the full documentation at [docs\u002FREADME.md](docs\u002FREADME.md)\n\n### 📦 SDKs\n\nEdgeQuake provides official SDKs for multiple languages:\n\n- [Python SDK](sdks\u002Fpython\u002FREADME.md) ([Changelog](sdks\u002Fpython\u002FCHANGELOG.md))\n- [TypeScript SDK](sdks\u002Ftypescript\u002FREADME.md) ([Changelog](sdks\u002Ftypescript\u002FCHANGELOG.md))\n- [Rust SDK](sdks\u002Frust\u002FREADME.md)\n- [Other SDKs](sdks\u002F) for C#, Go, Java, Kotlin, PHP, Ruby, Swift\n\nSee the [CHANGELOG.md](CHANGELOG.md) for SDK and core updates.\n\n### 🚀 Getting Started (15 minutes)\n\n| Guide                                                      | Description                | Time   |\n| ---------------------------------------------------------- | -------------------------- | ------ |\n| [Installation](docs\u002Fgetting-started\u002Finstallation.md)       | Prerequisites and setup    | 5 min  |\n| [Quick Start](docs\u002Fgetting-started\u002Fquick-start.md)         | First ingestion and query  | 10 min |\n| [First Ingestion](docs\u002Fgetting-started\u002Ffirst-ingestion.md) | Understanding the pipeline | 15 min |\n\n### 📖 Tutorials (Hands-On)\n\n| Tutorial                                                             | Description                     |\n| -------------------------------------------------------------------- | ------------------------------- |\n| [Building Your First RAG App](docs\u002Ftutorials\u002Ffirst-rag-app.md)       | End-to-end tutorial             |\n| [PDF Ingestion](docs\u002Ftutorials\u002Fpdf-ingestion.md)                     | PDF upload and configuration    |\n| [Multi-Tenant Setup](docs\u002Ftutorials\u002Fmulti-tenant.md)                 | Workspace isolation             |\n| [Document Ingestion](docs\u002Ftutorials\u002Fdocument-ingestion.md)           | Upload and processing workflows |\n| [Migration from LightRAG](docs\u002Ftutorials\u002Fmigration-from-lightrag.md) | Python to Rust migration guide  |\n\n### 🏗️ Architecture (How It Works)\n\n| Document                                     | Description                           |\n| -------------------------------------------- | ------------------------------------- |\n| [Overview](docs\u002Farchitecture\u002Foverview.md)    | System design and components          |\n| [Data Flow](docs\u002Farchitecture\u002Fdata-flow.md)  | How documents flow through the system |\n| [Crate Reference](docs\u002Farchitecture\u002Fcrates\u002F) | 11 Rust crates explained              |\n\n### 💡 Core Concepts (Theory)\n\n| Concept                                                 | Description                       |\n| ------------------------------------------------------- | --------------------------------- |\n| [Graph-RAG](docs\u002Fconcepts\u002Fgraph-rag.md)                 | Why knowledge graphs enhance RAG  |\n| [Entity Extraction](docs\u002Fconcepts\u002Fentity-extraction.md) | LLM-based entity recognition      |\n| [Knowledge Graph](docs\u002Fconcepts\u002Fknowledge-graph.md)     | Nodes, edges, and communities     |\n| [Hybrid Retrieval](docs\u002Fconcepts\u002Fhybrid-retrieval.md)   | Combining vector and graph search |\n\n### Deep Dives (Advanced)\n\n| Article                                                         | Description                                  |\n| --------------------------------------------------------------- | -------------------------------------------- |\n| [LightRAG Algorithm](docs\u002Fdeep-dives\u002Flightrag-algorithm.md)     | Core algorithm: extraction, graph, retrieval |\n| [Query Modes](docs\u002Fdeep-dives\u002Fquery-modes.md)                   | 6 modes explained with trade-offs            |\n| [Entity Normalization](docs\u002Fdeep-dives\u002Fentity-normalization.md) | Deduplication and description merging        |\n| [Gleaning](docs\u002Fdeep-dives\u002Fgleaning.md)                         | Multi-pass extraction for completeness       |\n| [Community Detection](docs\u002Fdeep-dives\u002Fcommunity-detection.md)   | Louvain clustering for global queries        |\n| [Chunking Strategies](docs\u002Fdeep-dives\u002Fchunking-strategies.md)   | Token-based segmentation with overlap        |\n| [Embedding Models](docs\u002Fdeep-dives\u002Fembedding-models.md)         | Model selection and dimension trade-offs     |\n| [Graph Storage](docs\u002Fdeep-dives\u002Fgraph-storage.md)               | Apache AGE property graph backend            |\n| [Vector Storage](docs\u002Fdeep-dives\u002Fvector-storage.md)             | pgvector HNSW indexing and search            |\n| [PDF Processing](docs\u002Fdeep-dives\u002Fpdf-processing.md)             | Vision and EdgeParse extraction pipeline     |\n| [Cost Tracking](docs\u002Fdeep-dives\u002Fcost-tracking.md)               | LLM cost monitoring per operation            |\n| [Pipeline Progress](docs\u002Fdeep-dives\u002Fpipeline-progress.md)       | Real-time progress tracking                  |\n\n### 📊 Comparisons\n\n| Comparison                                                     | Key Insights                       |\n| -------------------------------------------------------------- | ---------------------------------- |\n| [vs LightRAG (Python)](docs\u002Fcomparisons\u002Fvs-lightrag-python.md) | Performance and design differences |\n| [vs GraphRAG](docs\u002Fcomparisons\u002Fvs-graphrag.md)                 | Microsoft's approach comparison    |\n| [vs Traditional RAG](docs\u002Fcomparisons\u002Fvs-traditional-rag.md)   | Why graphs matter                  |\n\n### API Reference\n\n| API                                                | Description           |\n| -------------------------------------------------- | --------------------- |\n| [REST API](docs\u002Fapi-reference\u002Frest-api.md)         | HTTP endpoints        |\n| [Extended API](docs\u002Fapi-reference\u002Fextended-api.md) | Advanced API features |\n\n### Operations (Production)\n\n| Guide                                                       | Description           |\n| ----------------------------------------------------------- | --------------------- |\n| [Deployment](docs\u002Foperations\u002Fdeployment.md)                 | Production deployment |\n| [Configuration](docs\u002Foperations\u002Fconfiguration.md)           | All config options    |\n| [Monitoring](docs\u002Foperations\u002Fmonitoring.md)                 | Observability setup   |\n| [Performance Tuning](docs\u002Foperations\u002Fperformance-tuning.md) | Optimization guide    |\n\n### 🐛 Troubleshooting\n\n| Guide                                                    | Description                  |\n| -------------------------------------------------------- | ---------------------------- |\n| [Common Issues](docs\u002Ftroubleshooting\u002Fcommon-issues.md)   | Debugging guide              |\n| [PDF Extraction](docs\u002Ftroubleshooting\u002Fpdf-extraction.md) | PDF-specific troubleshooting |\n\n### 🔗 Integrations\n\n| Integration                                           | Description                          |\n| ----------------------------------------------------- | ------------------------------------ |\n| [MCP Server](mcp\u002F)                                    | Model Context Protocol for AI agents |\n| [OpenWebUI](docs\u002Fintegrations\u002Fopen-webui.md)          | Chat interface with Ollama emulation |\n| [LangChain](docs\u002Fintegrations\u002Flangchain.md)           | Retriever and agent integration      |\n| [Custom Clients](docs\u002Fintegrations\u002Fcustom-clients.md) | Python, TypeScript, Rust, Go clients |\n\n### 📓 More Resources\n\n- [FAQ](docs\u002Ffaq.md) - Frequently asked questions\n- [Cookbook](docs\u002Fcookbook.md) - Practical recipes\n- [Security](docs\u002Fsecurity\u002F) - Security best practices\n\n---\n\n## Docker Deployment\n\nEdgeQuake ships a production-ready multi-arch Docker image published to **GitHub Container Registry (GHCR)** on every tagged release. Supports `linux\u002Famd64` (x86 servers, Intel Macs) and `linux\u002Farm64` (Apple Silicon, AWS Graviton) out of the box — no QEMU emulation needed.\n\n```bash\n# Pull latest release — architecture is selected automatically\ndocker pull ghcr.io\u002Fraphaelmansuy\u002Fedgequake:latest\n\n# Pin to a specific version\ndocker pull ghcr.io\u002Fraphaelmansuy\u002Fedgequake:0.10.8\n```\n\n> **First-time package visibility:** After the first CI\u002FCD publish, you may need to set the GHCR package visibility to **Public** under [GitHub → Your Profile → Packages → edgequake → Package Settings → Change Visibility](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy?tab=packages). Once public, `docker pull` works without authentication.\n\nThree deployment options are available depending on your setup:\n\n---\n\n### Option A — API only (bring your own PostgreSQL)\n\nFastest start if you already have PostgreSQL (with `pgvector` + `apache_age` extensions).\nNo Rust toolchain, no local build — just pull and run.\n\n```bash\n# One-liner\ndocker run -d \\\n  --name edgequake \\\n  -p 8080:8080 \\\n  -e DATABASE_URL=\"postgres:\u002F\u002Fuser:password@your-db-host:5432\u002Fedgequake\" \\\n  -e EDGEQUAKE_LLM_PROVIDER=openai \\\n  -e OPENAI_API_KEY=\"sk-...\" \\\n  ghcr.io\u002Fraphaelmansuy\u002Fedgequake:latest\n\n# Verify\ncurl http:\u002F\u002Flocalhost:8080\u002Fhealth\n```\n\nOr with `docker compose` (recommended for persistent config):\n\n```bash\ncd edgequake\u002Fdocker\ncp .env.example .env        # set DATABASE_URL and provider key(s)\ndocker compose -f docker-compose.api-only.yml up -d\ncurl http:\u002F\u002Flocalhost:8080\u002Fhealth\n```\n\n---\n\n### Option B — Full stack using prebuilt images *(fastest, no Rust needed)*\n\nPulls the EdgeQuake API, frontend, and PostgreSQL images directly from GHCR. No Rust toolchain, Node.js toolchain, or local Docker build is required.\n\n```bash\ncd edgequake\u002Fdocker\ncp .env.example .env        # set EDGEQUAKE_LLM_PROVIDER and your API key\ndocker compose -f docker-compose.prebuilt.yml up -d\n```\n\nServices started:\n\n| Service         | Port | Image                                             |\n| --------------- | ---- | ------------------------------------------------- |\n| `edgequake` API | 8080 | `ghcr.io\u002Fraphaelmansuy\u002Fedgequake:latest`          |\n| `frontend`      | 3000 | `ghcr.io\u002Fraphaelmansuy\u002Fedgequake-frontend:latest` |\n| `postgres`      | 5432 | `ghcr.io\u002Fraphaelmansuy\u002Fedgequake-postgres:latest` |\n\n```bash\n# Use a specific API version\nEDGEQUAKE_VERSION=0.10.8 docker compose -f docker-compose.prebuilt.yml up -d\n\n# Logs\ndocker compose -f docker-compose.prebuilt.yml logs -f edgequake\n\n# Health check\ncurl http:\u002F\u002Flocalhost:8080\u002Fhealth\n\n# Stop\ndocker compose -f docker-compose.prebuilt.yml down\n```\n\n---\n\n### Option C — Full stack, build from source (includes frontend)\n\nBuilds everything locally including the Next.js web UI. Requires Docker BuildKit and sufficient disk space (~4 GB for the Rust build cache).\n\n```bash\ncd edgequake\u002Fdocker\ndocker compose up -d         # builds API, frontend, and postgres\n```\n\nServices started:\n\n| Service              | Port | Description                           |\n| -------------------- | ---- | ------------------------------------- |\n| `edgequake` API      | 8080 | REST API + document processing        |\n| `frontend` (Next.js) | 3000 | Web UI                                |\n| `postgres`           | 5432 | PostgreSQL with pgvector + Apache AGE |\n\n```bash\n# Follow logs\ndocker compose logs -f edgequake\n\n# Check health\ncurl http:\u002F\u002Flocalhost:8080\u002Fhealth\n\n# Stop\ndocker compose down\n```\n\n---\n\n### Environment Variables\n\nAll compose files read from a `.env` file placed in the same directory. Copy `edgequake\u002Fdocker\u002F.env.example` to get started.\n\n| Variable                       | Default                             | Description                                                                             |\n| ------------------------------ | ----------------------------------- | --------------------------------------------------------------------------------------- |\n| `DATABASE_URL`                 | *(set by compose in full-stack)*    | PostgreSQL connection string                                                            |\n| `EDGEQUAKE_LLM_PROVIDER`       | `ollama`                            | LLM provider: `openai`, `anthropic`, `gemini`, `mistral`, `azure`, `vertexai`, `ollama` |\n| `EDGEQUAKE_EMBEDDING_PROVIDER` | *(same as LLM)*                     | Separate embedding provider for hybrid mode                                             |\n| `OPENAI_API_KEY`               | —                                   | Required for `openai` \u002F `azure`                                                         |\n| `ANTHROPIC_API_KEY`            | —                                   | Required for `anthropic`                                                                |\n| `GEMINI_API_KEY`               | —                                   | Required for `gemini`                                                                   |\n| `MISTRAL_API_KEY`              | —                                   | Required for `mistral`                                                                  |\n| `AZURE_OPENAI_API_KEY`         | —                                   | Required for `azure`                                                                    |\n| `AZURE_OPENAI_ENDPOINT`        | —                                   | Azure resource endpoint URL                                                             |\n| `GOOGLE_CLOUD_PROJECT`         | —                                   | Required for `vertexai`                                                                 |\n| `XAI_API_KEY`                  | —                                   | Required for `xai`                                                                      |\n| `OLLAMA_HOST`                  | `http:\u002F\u002Fhost.docker.internal:11434` | Ollama server URL (host machine via gateway)                                            |\n| `EDGEQUAKE_VERSION`            | `latest`                            | GHCR image tag (Option B only)                                                          |\n| `RUST_LOG`                     | `info`                              | Log level (`debug`, `info`, `warn`, `error`)                                            |\n\n#### Pipeline Timeout & Concurrency Tuning (fixes #194)\n\nFor large documents or slow local LLMs (Ollama, LM Studio), set these env vars to avoid \"Timeout after Xs\" failures:\n\n| Variable                               | Default | Min  | Max     | Description                                           |\n| -------------------------------------- | ------- | ---- | ------- | ----------------------------------------------------- |\n| `EDGEQUAKE_CHUNK_TIMEOUT_SECS`         | `180`   | `10` | ∞       | Per-chunk LLM call timeout in seconds                 |\n| `EDGEQUAKE_CHUNK_MAX_RETRIES`          | `3`     | `0`  | `20`    | Max retry attempts per chunk on timeout\u002Ferror         |\n| `EDGEQUAKE_CHUNK_RETRY_DELAY_MS`       | `1000`  | `0`  | `60000` | Initial backoff delay in milliseconds                 |\n| `EDGEQUAKE_MAX_CONCURRENT_EXTRACTIONS` | `16`    | `1`  | `256`   | Max parallel LLM extraction calls                     |\n| `EDGEQUAKE_LLM_TIMEOUT_SECS`           | `600`   | —    | `3600`  | HTTP safety-layer timeout (Layer 2, raised to 1 hour) |\n\nExample for a large document on a slow GPU:\n\n```bash\nexport EDGEQUAKE_CHUNK_TIMEOUT_SECS=600       # 10 minutes per chunk\nexport EDGEQUAKE_MAX_CONCURRENT_EXTRACTIONS=4  # reduce parallelism for slow GPU\nexport EDGEQUAKE_LLM_TIMEOUT_SECS=3600        # 1 hour HTTP-level timeout\n```\n\n> **Tip — Ollama on the host:** When running EdgeQuake inside Docker and Ollama on your machine, leave `OLLAMA_HOST` at its default (`http:\u002F\u002Fhost.docker.internal:11434`). On Linux, the `extra_hosts: host.docker.internal:host-gateway` entry in the compose file resolves this automatically.\n\n---\n\n### Building the Image Locally\n\nThe Dockerfile lives at `edgequake\u002Fdocker\u002FDockerfile` and uses a two-stage build (Rust builder → Debian slim runtime). pdfium is embedded at compile time via `pdfium-auto` — no external shared library is needed.\n\n```bash\n# Build for host architecture\ndocker build -f edgequake\u002Fdocker\u002FDockerfile edgequake -t edgequake:local\n\n# Multi-platform build (requires docker buildx)\ndocker buildx build \\\n  --platform linux\u002Famd64,linux\u002Farm64 \\\n  -f edgequake\u002Fdocker\u002FDockerfile edgequake \\\n  -t edgequake:local --load\n```\n\n---\n\n### CI\u002FCD — Automated Releases\n\nDocker images are built and published automatically via GitHub Actions (`.github\u002Fworkflows\u002Frelease-docker.yml`) when a version tag is pushed:\n\n```bash\n# Tag a release — triggers multi-arch docker build + publish to ghcr.io\ngit tag v0.10.8 && git push origin v0.10.8\n```\n\nBoth `linux\u002Famd64` (ubuntu-latest runner) and `linux\u002Farm64` (native ARM64 runner — no QEMU) are built in parallel and merged into a single multi-arch manifest. The same image tag (`ghcr.io\u002Fraphaelmansuy\u002Fedgequake:0.10.8`) works on x86 servers, Apple Silicon Macs, and AWS Graviton instances.\n\nYou can also trigger a manual Docker build + publish without a tag via the `workflow_dispatch` input on GitHub Actions (`Actions → Release — Docker (GHCR) → Run workflow`).\n\n---\n\n## Development\n\n### Building and Testing\n\n```bash\n# Build backend\ncd edgequake && cargo build --release\n\n# Run tests\ncargo test\n\n# Lint and format\ncargo clippy\ncargo fmt\n\n# Build frontend\ncd edgequake_webui\nbun run build\n```\n\n### Make Commands\n\nEdgeQuake uses a unified Makefile for all development tasks:\n\n```bash\n# Full development stack\nmake dev              # Start all services (PostgreSQL + Backend + Frontend)\nmake dev-bg           # Start in background (for agents\u002Fautomation)\nmake dev-memory       # Start with in-memory storage (testing only)\nmake stop             # Stop all services\nmake status           # Check service status\n\n# Backend only\nmake backend-dev      # Run backend with PostgreSQL\nmake backend-memory   # Run backend with in-memory storage\nmake backend-bg       # Run backend in background\nmake backend-test     # Run backend tests\n\n# Frontend only\nmake frontend-dev     # Start frontend dev server\nmake frontend-build   # Build frontend for production\n\n# Database\nmake db-start         # Start PostgreSQL container\nmake db-stop          # Stop PostgreSQL container\nmake db-wait          # Wait for database to be ready\n\n# Quality checks\nmake test             # Run all tests\nmake lint             # Lint all code\nmake format           # Format all code\nmake clean            # Clean build artifacts\n\n# Resource safety (SPEC-006)\nmake resource-proof   # Bounded graph ops + migration 038 package gates\n```\n\n### Database Migrations & Resource Safety (SPEC-006)\n\nPostgreSQL migrations auto-apply on backend start (sqlx). For production index rollout and verification:\n\n```bash\nexport DATABASE_URL=\"postgres:\u002F\u002Fedgequake:edgequake@localhost\u002Fedgequake\"\n.\u002Fedgequake\u002Fscripts\u002Fmigrations\u002Fapply_038.sh --dry-run    # preflight\n.\u002Fedgequake\u002Fscripts\u002Fmigrations\u002Fapply_038.sh --apply --yes\n.\u002Fedgequake\u002Fscripts\u002Fmigrations\u002Fapply_038.sh --verify\n```\n\n| Doc | Purpose |\n|-----|---------|\n| [edgequake\u002Fdocs\u002Fmigrations.md](edgequake\u002Fdocs\u002Fmigrations.md) | Migration overview & troubleshooting |\n| [edgequake\u002Fdocs\u002Fmigrations\u002F038-source-ids-indexes.md](edgequake\u002Fdocs\u002Fmigrations\u002F038-source-ids-indexes.md) | Migration 038 FAQ & edge cases |\n| [edgequake\u002Fdocs\u002Fmigrations\u002Fbootstrap-first-principles.md](edgequake\u002Fdocs\u002Fmigrations\u002Fbootstrap-first-principles.md) | Bootstrap migration design |\n| [specifications\u002F006-ensure-perf\u002F](specifications\u002F006-ensure-perf\u002F000-index.md) | Resource safety spec & brutal assessment |\n\n### Agent Workflow\n\nEdgeQuake development follows a **Specification-Driven Development** approach using the `edgecode` SOTA coding agent.\n\n- **AGENTS.md**: Comprehensive agent guidelines and workflow\n- **specs\u002F**: All development specifications\n- **OODA Loop**: Iterative development cycles (Observe, Orient, Decide, Act)\n\nSee [AGENTS.md](AGENTS.md) for detailed agent workflow documentation.\n\n---\n\n## Contributing\n\nEdgeQuake is developed using the **edgecode** SOTA coding agent created by **Raphaël MANSUY**. The project follows a **Specification-Driven Development** approach where all changes are specified in the `specs\u002F` directory before implementation.\n\n**Current Status**: `edgecode` is not yet public but will be released soon.\n\n**For now, contributions should go through Raphaël MANSUY directly:**\n\n- **GitHub Issues**: Report bugs and request features\n- **GitHub Discussions**: Ask questions and share ideas\n- **Direct Contact**: For major contributions, contact [@raphaelmansuy](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy)\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.\n\n---\n\n## Community & Support\n\n### Code of Conduct\n\nWe are committed to providing a welcoming and inclusive environment. Please read our [Code of Conduct](CODE_OF_CONDUCT.md).\n\n### Support Channels\n\n- **GitHub Issues**: Bug reports and feature requests\n- **GitHub Discussions**: Questions and community help\n- **LinkedIn**: [@raphaelmansuy](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fraphaelmansuy)\n- **Twitter\u002FX**: [@raphaelmansuy](https:\u002F\u002Ftwitter.com\u002Fraphaelmansuy)\n\n### Founder\n\n**Raphaël MANSUY** 🇫🇷 - 🇭🇰🇨🇳 — Permanent Resident of Hong Kong, building the future of intelligent document retrieval systems and context graph systems.\n\n---\n\n## License\n\nLicensed under the Apache License, Version 2.0 (the \"License\").  \nYou may obtain a copy of the License at:\n\nhttp:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the [LICENSE](LICENSE) file for the specific language governing permissions and limitations.\n\n**Copyright © 2024-2026 Raphaël MANSUY**\n\n---\n\n## Acknowledgments\n\nEdgeQuake is inspired by and builds upon the excellent work of:\n\n- **LightRAG Research Paper** ([arxiv.org\u002Fabs\u002F2410.05779](https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779)): We are grateful to the authors of the foundational LightRAG algorithm which powers the core knowledge graph extraction and retrieval capabilities in EdgeQuake. Their innovative approach to entity extraction, relationship mapping, and hybrid retrieval has been instrumental in our framework's design.\n\n  **Special thanks to the LightRAG authors:**\n  - [Zirui Guo](https:\u002F\u002Farxiv.org\u002Fsearch\u002Fcs?searchtype=author&query=Guo,+Z)\n  - [Lianghao Xia](https:\u002F\u002Farxiv.org\u002Fsearch\u002Fcs?searchtype=author&query=Xia,+L)\n  - [Yanhua Yu](https:\u002F\u002Farxiv.org\u002Fsearch\u002Fcs?searchtype=author&query=Yu,+Y)\n  - [Tu Ao](https:\u002F\u002Farxiv.org\u002Fsearch\u002Fcs?searchtype=author&query=Ao,+T)\n  - [Chao Huang](https:\u002F\u002Farxiv.org\u002Fsearch\u002Fcs?searchtype=author&query=Huang,+C)\n\n- **GraphRAG** ([arxiv.org\u002Fabs\u002F2404.16130](https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.16130)): Microsoft's \"From Local to Global\" knowledge graph approach to query-focused summarization.\n  - [Shuai Wang](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fshuaiw\u002F)\n  - [Yingqiang Ge](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fyinge\u002F)\n  - [Ying Shen](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fyingshen\u002F)\n  - [Jianfeng Gao](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fjfgao\u002F)\n  - [Xiaodong Liu](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fxiaodl\u002F)\n  - [Yelong Shen](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fyelongshen\u002F)\n  - [Jianfeng Wang](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fjianfw\u002F)\n  - [Ming Zhou](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpeople\u002Fzhou\u002F)\n- **Rust Community**: For the amazing async ecosystem (Tokio, Axum, SQLx) that enables EdgeQuake's high performance\n- **React Community**: For React 19 and the modern frontend stack that powers our interactive UI\n\n---\n\n## Quick Links\n\n| Resource             | URL                                                                              |\n| -------------------- | -------------------------------------------------------------------------------- |\n| 📚 Full Documentation | [docs\u002FREADME.md](docs\u002FREADME.md)                                                 |\n| 🚀 Quick Start Guide  | [docs\u002Fgetting-started\u002Fquick-start.md](docs\u002Fgetting-started\u002Fquick-start.md)       |\n| 📦 SDKs Overview      | [sdks\u002F](sdks\u002F)                                                                   |\n| 🐍 Python SDK         | [sdks\u002Fpython\u002FREADME.md](sdks\u002Fpython\u002FREADME.md)                                   |\n| 🦀 Rust SDK           | [sdks\u002Frust\u002FREADME.md](sdks\u002Frust\u002FREADME.md)                                       |\n| 🟦 TypeScript SDK     | [sdks\u002Ftypescript\u002FREADME.md](sdks\u002Ftypescript\u002FREADME.md)                           |\n| 📜 CHANGELOG          | [CHANGELOG.md](CHANGELOG.md)                                                     |\n| 🔧 Agent Workflow     | [AGENTS.md](AGENTS.md)                                                           |\n| 🤝 Contributing       | [CONTRIBUTING.md](CONTRIBUTING.md)                                               |\n| 📜 Code of Conduct    | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)                                         |\n| 📄 License            | [LICENSE](LICENSE)                                                               |\n| 🐛 Report Issues      | [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake\u002Fissues)               |\n| 💬 Discussions        | [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake\u002Fdiscussions)     |\n| 🌐 Repository         | [github.com\u002Fraphaelmansuy\u002Fedgequake](https:\u002F\u002Fgithub.com\u002Fraphaelmansuy\u002Fedgequake) |\n\n---\n\n**Ready to build intelligent document retrieval?** [Get started now!](docs\u002Fgetting-started\u002Fquick-start.md)\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=raphaelmansuy\u002Fedgequake&type=date&legend=top-left)](https:\u002F\u002Fwww.star-history.com\u002F#raphaelmansuy\u002Fedgequake&type=date&legend=top-left)\n",2,"2026-06-11 04:11:19","high_star"]