EdgeQuake Documentation
April 27, 2026 · View on GitHub
High-Performance Graph-Enhanced RAG in Rust
Welcome to EdgeQuake — an advanced Retrieval-Augmented Generation (RAG) framework that combines knowledge graphs with vector search for superior context retrieval. The current stack is pinned for deterministic development and CI behavior, with PostgreSQL as the required storage backend and fail-closed workspace isolation on destructive and query flows.
┌────────────────────────────────────────────────────────────────────┐
│ EdgeQuake │
│ │
│ Document ──▶ [Pipeline] ──▶ Knowledge Graph ──▶ Query Engine │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Chunks │ │ Entities│ │ Hybrid │ │
│ │ + Embed │ │ + Rels │ │ Results │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ [REST API] [Next.js WebUI] [Rust SDK] [PostgreSQL + AGE] │
└────────────────────────────────────────────────────────────────────┘
📚 Documentation Index
🚀 Getting Started
| Guide | Description | Time |
|---|---|---|
| Installation | Prerequisites and setup | 5 min |
| Quick Start | First ingestion and query | 10 min |
| First Ingestion | Understanding the pipeline | 15 min |
🏗️ Architecture
| Document | Description |
|---|---|
| Overview | System design and components |
| Data Flow | How documents flow through the system |
| Crate Reference | 11 Rust crates explained |
💡 Core Concepts
| Concept | Description |
|---|---|
| Graph-RAG | Why knowledge graphs enhance RAG |
| Entity Extraction | LLM-based entity recognition |
| Knowledge Graph | Nodes, edges, and communities |
| Hybrid Retrieval | Combining vector and graph search |
🔬 Deep Dives
| Article | Description |
|---|---|
| LightRAG Algorithm | Core algorithm: extraction, graph, retrieval |
| Query Modes | 6 modes with trade-offs explained |
| Entity Normalization | Deduplication and description merging |
| Gleaning | Multi-pass extraction for completeness |
| Entity Extraction | LLM-based extraction pipeline |
| Community Detection | Louvain clustering for global queries |
| Chunking Strategies | Token-based segmentation with overlap |
| Embedding Models | Model selection and dimension trade-offs |
| Graph Storage | Apache AGE property graph backend |
| Vector Storage | pgvector HNSW indexing and search |
| PDF Processing | Vision and EdgeParse extraction pipeline |
| Cost Tracking | LLM cost monitoring per operation |
| Pipeline Progress | Real-time progress tracking |
📊 Comparisons
| Comparison | Key Insights |
|---|---|
| vs LightRAG (Python) | Performance and design differences |
| vs GraphRAG | Microsoft's approach comparison |
| vs Traditional RAG | Why graphs matter |
📖 Tutorials
| Tutorial | Description |
|---|---|
| Building Your First RAG App | End-to-end tutorial |
| PDF Ingestion | PDF upload and configuration |
| Multi-Tenant Setup | Workspace isolation |
| Document Ingestion | Upload and processing workflows |
| Migration from LightRAG | Python to Rust migration guide |
🔌 Integrations
| Integration | Description |
|---|---|
| OpenWebUI | Chat interface with Ollama emulation |
| LangChain | Retriever and agent integration |
| Custom Clients | Python, TypeScript, Rust, Go clients |
📦 SDKs (by language)
| Guide | Description |
|---|---|
| SDK index | Rust, Python, TypeScript, Kotlin, Swift, Go, Java, C#, Ruby |
| Brutal SDK assessment | Parity gaps and tiering (honest) |
📖 API Reference
| API | Description |
|---|---|
| REST API | HTTP endpoints |
| Extended API | Advanced API features |
📓 Reference
| Resource | Description |
|---|---|
| Cookbook | Practical recipes for common tasks |
| FAQ | Frequently asked questions |
🛠️ Operations
| Guide | Description |
|---|---|
| Deployment | Production deployment |
| Configuration | All config options |
| Monitoring | Observability setup |
| Performance Tuning | Optimization guide |
| Operations Overview | Reliable local and CI/CD operating model |
🔒 Security & Troubleshooting
| Guide | Description |
|---|---|
| Security Best Practices | Security guidelines |
| Common Issues | Debugging guide |
⚡ Quick Links
I want to...
| Goal | Go To |
|---|---|
| Get running in 5 minutes | Quick Start |
| Understand the architecture | Overview |
| Learn how the algorithm works | LightRAG Algorithm |
| See API endpoints | REST API |
| Use an official SDK | SDKs |
| Deploy to production | Deployment |
🔧 Technology Stack
┌─────────────────────────────────────────────────────────────┐
│ Backend (Rust) │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Rust 1.95 │ │ Axum │ │ SQLx │ │ Tokio + │ │
│ │ + Cargo │ │ (HTTP) │ │ (database)│ │ tracing │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Frontend (TypeScript) │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Next.js │ │ React 19 │ │ Sigma.js │ │ Zustand │ │
│ │ 16.2.x │ │ 19.2.x │ │ (graph) │ │ (state) │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Storage │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ PostgreSQL 15+ with pgvector + Apache AGE │ │
│ │ Required for server mode; no in-memory fallback │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
📈 Key Metrics
| Metric | Value | Notes |
|---|---|---|
| Lines of Rust | ~130,000 | Across 11 crates |
| Query Modes | 6 | naive, local, global, hybrid, mix, bypass |
| Entity Types | 7 default | PERSON, ORGANIZATION, LOCATION, CONCEPT, EVENT, TECHNOLOGY, PRODUCT |
| Embedding Dims | Configurable | 1536 (OpenAI), 768 (Ollama/LM Studio) |
🏃 One-Liner Start
# Clone and run with Ollama (free, local LLM)
git clone https://github.com/raphaelmansuy/edgequake.git && cd edgequake && make dev
📄 License
Apache-2.0
🔗 Links
- GitHub: github.com/raphaelmansuy/edgequake
- LightRAG Paper: arxiv.org/abs/2410.05779