Token导航 LogoToken导航TokenDH.com
Rust Rag logo
搜索检索未说明官方级别未说明来源级核验

Rust Rag

MCP Server

RustRAG是一个高性能的本地检索增强生成(RAG)服务器,用于索引代码库和多格式文档,通过向量搜索提供最相关的上下文。

工具数

7

提示词数

0

GitHub Stars

7

资源数

0
检索增强生成RustClaude代码索引Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Michaol

提供方

Michaol

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

RustRAG

![License: MIT/Apache-2.0](LICENSE-MIT) ![CI](https://github.com/Michaol/RustRAG/actions/workflows/ci.yml) ![Rust](https://www.rust-lang.org)

🇨🇳 中文文档

用Rust编写的高性能本地RAG(检索增强生成)MCP服务器。

40倍代币减少 --在本地索引您的代码库,只为AI助手检索最相关的上下文。

______________________________________________________________________

最新版本(v2.4.3)

v2.4.3修复了sqlite-vec自动扩展注册顺序-- sqlite3_auto_extension 现在被称为 之前 Connection::open(),确保r2d2池中的每个连接都加载了扩展。

  • 修复sqlite-vec初始化顺序:打开连接前必须注册自动扩展;SQLite仅对注册后创建的连接应用自动扩展。
  • 备注:需要v2.4.1+版本(sqlite-vec 0.1.9).

______________________________________________________________________

Expand to view History (v2.4.2 and prior)

v2.4.2文件监视器修复

v2.4.2修复了后台文件监视器中被忽略的目录(如 targetnode_modules)尽管被列在 exclude_patterns.

  • 观察者排除模式:文件监视器现在完全尊重 exclude_patterns 使用 ignore 板条箱 OverrideBuilder,防止对动态生成的文件进行不必要的索引。

v2.4.1 sqlite-vec升级

v2.4.1是一个维护版本升级 sqlite-vec0.1.7-alpha.10 到稳定 0.1.9 release,修复运行时错误,其中 vec_version() 在某些平台上找不到该功能。

  • 将sqlite-vec升级到0.1.9:解决 no such function: vec_version 由矢量扩展的alpha预发布构建引起的错误。
  • 备注:如果从v2.4.0或更早版本升级,请删除现有 vectors.db 文件并重新启动以重新初始化数据库架构。

v2.4.0多格式文档支持

v2.4.0增加了多格式文档支持,将RustRAG从仅代码索引扩展到通用文档RAG引擎:

  • 多格式文档支持:索引纯文本(.txt, .log),结构化数据(.json, .yaml, .yml, .toml, .csv),HTML(.html, .htm),PDF(.pdf),单词(.docx),以及电子表格(.xls, .xlsx, .xlsb, .ods).
  • 格式特定分块:每种格式都使用量身定制的提取和分块策略,以保留结构信息(JSON键路径、CSV标题、电子表格表名称等)。
  • 可配置扩展:默认情况下,在中启用了所有24种支持的文件类型 config.json。用户可以删除扩展名以过滤不需要的格式。完全支持配置热重载。
  • 新依赖关系 (都是纯Rust,没有C绑定): lopdf (PDF), docx-rs (DOCX), calamine (XLS/XLSX/ODS), scraper (HTML), toml, csv.
  • 此外:已添加 .jsx/.tsx 支持的代码扩展(Tree sitter已经支持它们)。

v2.3.0安全与代码质量

v2.3.0是一个安全和代码质量强化版本,解决了通过系统代码审查发现的26个问题:

  • 安全:修复了Windows上的路径验证,限制了通过MCP工具读取任意文件,默认情况下将HTTP服务器绑定到localhost。
  • 可靠性:替代生产 assert_eq! panics具有适当的错误传播、固定的索引器计数器逻辑、打包的阻塞下载 spawn_blocking.
  • 配置:无效的JSON现在返回错误,而不是默默地回到默认值;向量维度在启动时根据sqlitevec模式进行验证。
  • 国际化语言检测现在可以识别日语(平假名/片假名)和韩语(韩文);YAML frontmatter正确地转义了特殊字符。
  • 演出:ONNX线程数通过自动检测 available_parallelism(); LanguageConfig 缓存为 LazyLock; build_dictionary 默认情况下,迭代限制为100个文档。
  • 代码质量:删除了死PHP代码路径,修复了文件查看器中的TOCTU竞争,添加了 // SAFETY: 不安全块的文档。

v2.2.0架构重构

v2.2.0引入了一个主要的架构重构,重点是高并发性和异步可靠性:

  • 数据库连接池:集成 r2d2sqlite-vec 以实现安全的多线程数据库访问。
  • 异步网络:从迁移了更新检查器 reqwest::blocking 转换为原生异步 reqwest 消除东京线程饥饿。
  • 配置安全:解决了配置加载中的TOCTU(检查时间到使用时间)竞争条件,以提高可靠性。
  • 演出:优化了ONNX嵌入器的延迟初始化,并改进了内部错误冒泡。

v2.1.0高级改进

v2.1.0引入了高级功能和改进,以提高性能、可靠性和开发人员体验:

  • 新功能:增强功能和改善用户体验。
  • 性能优化:更快的处理速度和更少的资源使用。
  • 稳定性改进:增强的可靠性和错误修复。

v2.0.0从ONNX模型迁移

v2.0.0从迁移嵌入模型 model.onnx (470MB)给官方 model_O4.onnx (235MB)由HuggingFace提供,文件大小和运行时内存减半:

  • ONNX O4图形优化模型:使用预先优化的ONNX图形优化级别4模型。矢量输出与原始输出相同——现有数据库100%兼容,不需要重新索引。
  • 型号尺寸减半:下载大小从~470MB降至~235MB,运行时内存从~500MB降至~250MB。
  • 自动迁移清理:现有用户 model.onnx 文件将在启动时自动检测并删除旧模型。

v1.3.7配置热重载

v1.3.7通过以下方式为配置和模型实例引入了本机热重载机制 RwLock:

  • GPU推理引擎热重载:核心模型执行环境现在使用读写锁解耦(RwLock).修改硬件策略(device)或参数 config.json 将自动释放之前的ONNX推理图,并在下一次请求时使用新设置重新初始化它,不需要重新启动服务。
  • 动态配置和监视器同步:系统现在监视 config.json 为了改变。任何修改都会立即重新加载配置,并根据更新的包含/排除过滤规则实时调整后台文件监视过程。

v1.3.6硬件加速更新

  • 多平台GPU加速:支持跨平台加载本机CUDA、TensorRT、DirectML和CoreML动态库,具有智能回退到CPU的功能。
  • 配置和容错: config.json 支持自定义嵌入器 batch_size 和切换 compute.fallback_to_cpu 模式,以防止硬件初始化失败导致恐慌。
  • 实时文件监视:集成了本机后台文件系统事件。对跟踪目录的修改会触发增量后台同步。
  • SQLite WAL模式:SQLite矢量存储默认启用预写日志记录,防止 database is locked 并发操作期间的争用。
  • 粒度MCP错误报告:改进了错误处理,将本地化异常直接传播到客户端日志。

v1.2.0和v1.1.0性能和压缩更新

  • INT8标量量化:重新设计DB虚拟表,替换 FLOAT[384]INT8[384]这实现了75%的矢量存储大小减少,而没有明显的召回率下降。
  • ONNX 3级图形优化:升级了ONNX推理会话构建器,以完全支持3级图优化,提高了纯CPU推理性能。
  • 自动级联清理:更改过滤器模式(exclude_patterns)提示系统在下次索引更新时清除过时的文档;删除物理文件也会自动清理数据库中的相应记录。
⚠️ 数据兼容性说明:如果从v1.1.x升级,请手动删除现有 vectors.db 文件来初始化新的INT8模式数据库。

______________________________________________________________________

特性

  • 7 MCP工具 --搜索、索引、列表文档、管理文档、frontmatter、搜索关系、构建字典
  • 24种支持的格式 --代码(Rust、Go、Python、TypeScript、JavaScript)、Markdown、纯文本、结构化数据(JSON、YAML、TOML、CSV)、HTML、PDF、DOCX、电子表格(XLS、XLSX、XLSB、ODS)
  • 向量搜索 --SQLite+SQLite-vec用于快速局部向量相似性搜索
  • 代码智能 --Rust、Go、Python、TypeScript、JavaScript的树型AST解析
  • 多语词典 --CJK↔英文符号映射提取
  • 高并发性和稳定性 --异步无阻塞后台同步(Arc)具有强大的分页功能,可防止10k+文件的MCP stdio传输缓冲区限制(零EOF丢失)。
  • 汽车模型下载 --自动下载 multilingual-e5-small ONNX型号
  • 交叉平台的 --macOS(英特尔/ARM)、Linux(x64/ARM64)、Windows(x64)

快速开始

1.安装

从以下网址下载适用于您平台的最新发布包 发布:

平台包装示例
Windows x64rustrag-windows-x64.exe.zip
macOS苹果硅rustrag-macos-apple-silicon.tar.gz
Linux x64rustrag-linux-x64.tar.gz
Linux ARM64rustrag-linux-arm64.tar.gz

安装步骤:

视窗

# Extract to a permanent directory
Expand-Archive rustrag-windows-x64.zip -DestinationPath "$env:LOCALAPPDATA\RustRAG"
⚠️ 重要:保持 rustrag.exe 与随附目录位于同一目录中 .dll 文件(例如。, onnxruntime.dll).做 单独移动exe——ONNX运行时库必须保留在它旁边。

macOS

mkdir -p ~/rustrag && tar xzf rustrag-macos-apple-silicon.tar.gz -C ~/rustrag
chmod +x ~/rustrag/rustrag

Linux

mkdir -p ~/rustrag && tar xzf rustrag-linux-x64.tar.gz -C ~/rustrag
chmod +x ~/rustrag/rustrag

提取后,使用 绝对路径rustrag 配置IDE MCP设置时使用二进制。

或者,您可以从源代码构建:

# Clone and build
git clone https://github.com/Michaol/RustRAG.git
cd RustRAG
cargo build --release

2.配置

创建一个 config.json 在项目根目录中(首次运行时自动生成默认值):

{
  "document_patterns": ["./"],
  "exclude_patterns": ["**/node_modules/**", "**/target/**", "**/.git/**"],
  "file_extensions": [
    "md", "rs", "go", "py", "js", "ts", "jsx", "tsx",
    "txt", "log",
    "json", "yaml", "yml", "toml", "csv",
    "html", "htm",
    "pdf", "docx", "xls", "xlsx", "xlsb", "ods"
  ],
  "db_path": "./vectors.db",
  "chunk_size": 500,
  "search_top_k": 5,
  "compute": {
    "device": "auto",
    "fallback_to_cpu": true
  },
  "model": {
    "name": "multilingual-e5-small",
    "dimensions": 384,
    "batch_size": 32
  }
}

3.添加到MCP客户端

反重力IDE

添加到您的 mcp_config.json (设置→ MCP服务器):

{
  "mcpServers": {
    "rustrag": {
      "command": "path/to/rustrag",
      "args": ["--config", "path/to/config.json"]
    }
  }
}

克劳德桌面/光标

添加到MCP客户端配置文件:

{
  "mcpServers": {
    "rustrag": {
      "command": "path/to/rustrag",
      "args": ["--config", "path/to/config.json"]
    }
  }
}

🌩️ 高级:远程安装、本地调用(SSH模式)

如果您的大量代码库、开发环境和模型权重驻留在远程高性能服务器(或本地NAS)上,而您在轻量级笔记本电脑上编码,则可以远程安装RustRAG 通过SSH无缝挂载由于MCP使用标准流(stdio),SSH可以轻松地将其传输到本地IDE!

身份验证要求(重要): MCP客户端(如Cursor或Claude Desktop)在后台静默运行进程 无法提示您输入密码因此,必须配置非交互式登录:

  • 🔑 选项1:SSH密钥(强烈推荐,本机跨平台)

在本地计算机上生成密钥对(ssh-keygen -t ed25519)并将其推到遥控器上(ssh-copy-id user@ip)用于安全、无密码的安装。本机适用于Windows、macOS和Linux。

  • 🔓 选项2: sshpass (基于密码,仅限Linux/macOS)

如果必须使用密码,请替换 commandsshpass (例如。, args: ["-p", "YOUR_PASSWORD", "ssh", "user@ip", ...]). 备注: sshpass 在Linux和macOS上很容易获得(通过 brew install sshpass),但在Windows上本机安装极其困难。Windows用户应严格遵守选项1。

配置示例(本机SSH设置):

{
  "mcpServers": {
    "rustrag-remote": {
      "command": "ssh",
      "args": [
        "user@remote.server.ip", // Replace with your remote host
        "/absolute/path/to/rustrag", // Remote path to rustrag binary
        "--config",
        "/remote/project/config.json" // Remote path to config
      ]
    }
  }
}

此设置使您的本地AI助手能够即时洞察数百万行远程代码,而您的本地计算机上的CPU或内存占用绝对为零。

💻 高级:解锁本地GPU加速(CUDA/TensorRT)

为了尽量减少存储库占用空间,并确保任何平台(特别是苹果Silicon Mac或没有独立GPU的笔记本电脑)上所有用户的开箱即用兼容性,RustRAG默认为轻量级 仅CPU模式 (fallback_to_cpu: true).但是,如果您拥有专用的NVIDIA GPU(例如RTX 30/40系列)并希望获得微秒级的矢量搜索吞吐量,则可以轻松解锁TensorRT/CUDA加速:

  1. 下载官方GPU运行库

导航到 ONNX Runtime v1.25.1发布页面 并下载相应的操作系统GPU包(约300+MB):

  • 窗户: 下载 onnxruntime-win-x64-gpu-1.25.1.zip
  • Linux: 下载 onnxruntime-linux-x64-gpu-1.25.1.tgz
  • macOS: Apple Silicon Mac在CPU上运行速度很快,支持CoreML。请勿下载英伟达软件包。
  1. 设置动态库

提取存档并删除所有 .dll (适用于Windows)或 .so (对于Linux)文件(例如。, onnxruntime.dll, libonnxruntime_providers_cuda.so)确切地说 进入您的同一目录 rustrag 后端可执行二进制文件.

  1. 启用自动检测

打开项目配置(config.json)并确保:

"compute": {
  "device": "auto", // <-- Will auto-seek TensorRT, then CUDA, DML/CoreML, etc.
  "fallback_to_cpu": true // <-- Safety net to quietly fallback to CPU if GPU dlls are missing
}

如果满足要求,启动时MCP日志将自信地宣布 🚀 ONNX Execution Provider Activated: [TensorRT][CUDA]. 此配置完全与您的执行文件夹隔离;它永远不会污染核心项目存储库!

CLI选项

标志默认值描述
--config, -cconfig.json配置文件的路径
--log-levelinfo日志级别(跟踪/调试/信息/警告/错误)
--skip-downloadfalse跳过自动模型下载
--skip-syncfalse跳过初始文档同步
--transportstdio运输方式: stdiohttp
--port8765HTTP端口(用于传输=http)
--version--显示版本并退出

MCP工具

工具说明
search使用可选目录/文件名过滤器的自然语言矢量搜索
index使用逻辑AST分块和抽象对标记或代码文件进行索引
manage_document从索引中删除文档或强制重新索引现有文档
list_documents列出所有索引文档
frontmatter将YAML frontmatter元数据添加或更新到markdown文件
search_relations搜索代码关系(调用、导入、继承)
build_dictionary提取CJK↔来自代码的英文术语映射

建筑

src/
├── lib.rs # Module exports
├── main.rs # CLI + startup sequence
├── config.rs # Configuration loading/validation
├── frontmatter.rs # YAML frontmatter operations
├── updater.rs # Version update checker (GitHub API)
├── db/ # SQLite + sqlite-vec vector database
│   ├── mod.rs # Schema + connection management
│   ├── models.rs # Data models
│   ├── documents.rs # Document CRUD operations
│   ├── search.rs # Vector similarity search
│   └── relations.rs # Code relationship queries
├── embedder/ # Text embedding engine
│   ├── mod.rs # Embedder trait
│   ├── onnx.rs # ONNX Runtime inference
│   ├── mock.rs # Mock embedder (testing)
│   ├── tokenizer.rs # BERT tokenizer wrapper
│   └── download.rs # Model auto-download
├── indexer/ # Document & code indexing
│   ├── core.rs # Differential sync engine
│   ├── markdown.rs # Markdown chunking
│   ├── text_parser.rs # Multi-format document extraction (PDF, DOCX, XLSX, etc.)
│   ├── code_parser.rs # Tree-sitter code parsing
│   ├── relations.rs # Code relationship extraction
│   ├── dictionary.rs # Multilingual dictionary
│   └── languages.rs # Language-specific TS queries
└── mcp/ # MCP protocol layer
    ├── server.rs # Server setup (stdio + HTTP transport)
    └── tools.rs # 7 tool handler implementations

支持的语言

语言扩展解析器
生锈.rs树锈
去吧.go树保姆走
python .py树栖蟒蛇
TypeScript.ts .tsx树型字体
JavaScript.js .jsx树型javascript
Markdown.md下拉cmark

支持的文档格式

格式扩展名分析器/库
纯文本.txt, .logfs::read_to_string
JSON.jsonserde_json
YAML.yaml, .ymlserde_yaml
汤姆.tomltoml
CSV.csvcsv
HTML.html, .htmscraper
PDF.pdflopdf
Word.docxdocx-rs
电子表格.xls, .xlsx, .xlsb, .odscalamine

从源头构建

先决条件: 锈蚀1.85+

cargo build --release

二进制文件将位于 target/release/rustrag (或 rustrag.exe 在Windows上)。

测试

# Run all tests
cargo test --all
# Run integration tests only
cargo test --test integration_test
# Lint
cargo clippy -- -D warnings

许可证

根据以下任一方式获得许可

由您选择。

目录标签

目录标签

检索增强生成RustClaude代码索引本地部署本地RAG向量搜索多格式文档

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP