Ferritin — Rust documentation

rs.ferritin由 ferritin.rs 发布官方发布者v2026.7.21更新于 Oct 24, 2026

Search and read Rust documentation for the standard library and any crate on crates.io

已验证Streamable HTTP可网页运行知识与记忆开发者工具

概览

AI 生成的概览

一个远程 MCP 服务器,让助手查阅并搜索 Rust 标准库和 crates.io 各 crate 的文档。

可以做什么
按路径查询某个 Rust 条目的文档,例如标准库类型或某个 crate 的 trait,并在对话中返回其文档内容与签名信息。在指定 crate 的文档内搜索匹配的条目,或在不指定 crate 时搜索,以发现应该使用哪个 crate。两者合起来覆盖常见流程:先找到合适的 crate,再直接阅读具体条目的文档,无需离开助手。
适用场景
在编写或调试 Rust 代码、希望助手核对 std 或 crates.io 上 crate 的真实 API 文档而不是凭记忆作答时适用。也适合在多个 crate 之间做选择,或查找不知道确切路径的条目。
运行要求
远程 MCP 端点;未声明需要本地安装、账号、API 密钥或环境变量。助手需要能访问该端点的网络,服务器会按需从 docs.rs 获取 crate 文档。
安装前请注意
该服务器只做只读的文档查询,但查询内容和请求的条目路径会发送到第三方端点,crate 文档也从 docs.rs 获取,因此这些服务可见你的查询。文档对应已发布的 crate 版本,可能落后于最新发布。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ferritin — Rust documentation,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/rs.ferritin%2Frustdoc/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ferritin-rust-documentation": {
      "type": "http",
      "url": "https://ferritin.rs/mcp"
    }
  }
}

README

🩸 Ferritin

[ci] [codecov] [crates.io version badge]

A terminal-based Rust documentation viewer

Ferritin reads rustdoc JSON output to display Rust documentation directly in your terminal. It supports local workspace crates, standard library documentation, and crates from crates.io, with search functionality and modern terminal features including mouse support, syntax highlighting, and clickable links.

Features

  • Interactive documentation browser with keyboard and mouse navigation
  • One-shot CLI for quick documentation lookups in the terminal
  • Search across crates or within specific crates
  • Works seamlessly across three contexts:
    • Local workspace crates (requires nightly toolchain)
    • Standard library (requires rust-docs-json rustup component)
    • Crates from crates.io (fetched from docs.rs on demand)
  • Modern terminal UI with features like italics, unicode box drawing, syntax highlighting, OSC8 hyperlinks, cursor changes in terminals that support it, and mouse hover previews
  • Fast navigation with history and breadcrumb trail

Installation

Prebuilt binary (recommended)

Prebuilt binaries skip compilation and are available for x86_64/aarch64 macOS, x86_64 Linux, and x86_64 Windows.

If you have cargo-binstall, it reads the release metadata and installs the right binary for your platform:

bash
cargo binstall ferritin

Otherwise, the installer scripts detect your platform, download the matching binary, and place it in ~/.cargo/bin:

macOS and Linux:

bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jbr/ferritin/releases/download/ferritin-latest/ferritin-installer.sh | sh

Windows (PowerShell):

powershell
powershell -c "irm https://github.com/jbr/ferritin/releases/download/ferritin-latest/ferritin-installer.ps1 | iex"

Both of the above always install the most recent release. You can also pick a specific version or download archives directly from the releases page.

From source

To build from source (or for a platform without a prebuilt binary):

bash
cargo install ferritin

Optional: Standard library documentation

To view documentation for std, core, and alloc:

bash
rustup component add rust-docs-json

For local workspace documentation

Local crate documentation requires a nightly toolchain:

bash
rustup toolchain install nightly

Note: There is a relationship between ferritin's version and the nightly toolchain version. Ferritin supports a range of recent rustdoc JSON format versions, and if your nightly generates a newer format, ferritin will make a best effort at parsing it.

Usage

Interactive mode

Launch the interactive browser:

bash
ferritin -i

Once running, use h or ? to see available keybindings. Basic navigation:

  • g - go to an item by path (e.g., std::vec::Vec)
  • s - search (Tab to toggle between current crate and all crates)
  • l - list available crates
  • Arrow keys, j/k, or mouse to navigate
  • Click on links to follow them

CLI mode

View documentation for a specific item:

bash
ferritin get std::vec::Vecferritin get serde::Serialize

Search for items:

bash
ferritin search "hash map"ferritin search --crate tokio "spawn"

List available crates in your workspace:

bash
ferritin list

Output format

Ferritin auto-detects how to render: ANSI colors on a terminal, plain text when piped, and a compact markdown-flavored format under a coding agent. Override it with --format <tty|plain|agent|json>. --format json emits a structured representation — of the resolved item for get, or of the results for search/list — for scripting and programmatic consumers:

bash
ferritin get std::vec::Vec --format json

(The JSON shape is still settling as the library API evolves; a published JSON Schema is planned.)

Caching and Storage

Ferritin keeps its caches under a single directory — $FERRITIN_HOME if set, else $XDG_CACHE_HOME/ferritin, else ~/.cache/ferritin. Everything in it is reconstructible (fetched or derived), so it is always safe to delete:

  • Crates.io documentation: raw rustdoc JSON at docs/{crate}/{version}/{format-version}.json, with derived binary caches beside it (an rkyv archive for fast partial loads, and a .index file generated lazily on first search)
  • crates.io metadata: the crate-names artifacts (crate-names/) used for version resolution and typeahead, and per-crate version lookups (crates-io-versions/)
  • Standard library search indices: written to {rustc sysroot}/share/doc/rust/json/ if available
  • Local workspace documentation: built into the workspace's own target/doc/, not the shared cache

Earlier versions cached under $CARGO_HOME/rustdoc-json; a cache found there is migrated automatically on first run.

Environment Variables

VariableMeaning
FERRITIN_HOMECache root override (see above)
FERRITIN_THEMEDefault color theme (equivalent to --theme)
FERRITIN_CRATE_NAMES_URL, FERRITIN_CRATE_DESCRIPTIONS_URLOverride where the crate-names artifacts are fetched from (e.g. a mirror)

ferritin serve (the opt-in serve/acme features; not present in distributed binaries) is configured 12-factor style:

VariableMeaning
HOST, PORTBind address (:: binds dual-stack)
FERRITIN_CACHE_BYTESIn-memory crate-cache weight cap
FERRITIN_RSS_HIGH_WATER_BYTESRSS guard threshold (Linux only): shed cache weight when anonymous RSS exceeds it
FERRITIN_RATELIMITPer-client /api requests per minute
FERRITIN_ACME_DOMAINActivates automatic HTTPS via Let's Encrypt for this domain
FERRITIN_ACME_CACHE_DIRRequired with ACME: persists the account key and certificates
FERRITIN_ACME_CONTACTOptional ACME contact email
FERRITIN_ACME_PRODUCTIONUse the Let's Encrypt production directory (default: staging)

Development-only knobs (not part of the stable interface): FERRITIN_TEST_MODE (normalized snapshot-test output), FERRITIN_REINDEX (rebuild search indexes in memory, bypassing the disk cache), and the search-scoring probes FERRITIN_NAME_WEIGHT, FERRITIN_ANCESTOR_WEIGHTS, and FERRITIN_NAME_PREFIX_COUNT.

Current Status

Ferritin is at version 0.x and actively used by the author as a primary documentation interface. It's ready for general use, though the output format should be considered unstable and may change between versions.

If you're scripting against ferritin's output, be aware that the text format may change. Pin to a specific version or be prepared to update your scripts.

Platform Support

Ferritin is developed primarily on Unix-like systems and is also tested on Windows, where both the CLI and interactive TUI work (prebuilt x86_64 Windows binaries are provided). If you encounter issues on any platform, please open an issue or pull request.

Related Projects

Ferritin was originally developed to support the rustdoc-mcp MCP server, which provides Rust documentation access for Claude Code and other MCP clients.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

来源:README.md,提交 3770aa6

工具

2

get

Show documentation for a Rust item by path.

输入参数path必填

版本历史

1
  1. v2026.7.21最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分