What is RustXNG?
RustXNG is a metasearch engine written in Rust and based on SearXNG. It does not crawl or index the web: it sends your query to the external search providers you enable, merges and ranks their results, and returns them as JSON, CSV, RSS or HTML. It can also fetch the text of the top pages for grounding, up to 8,000 characters each by default.
For agents it offers a small HTTP API with max_results, domain filters and time ranges, and an MCP server with read-only search and read_page tools whose responses are capped at 12,000 characters by default. It ships as a single binary for Linux, macOS and Windows, a Docker image, or a cargo install, and listens on 127.0.0.1:29483.
It is licensed AGPL-3.0-or-later and maintained by its author, sahenjp, with a small group of contributors.
Is RustXNG worth it?
RustXNG gives agents what paid search APIs such as Tavily sell, compact ranked results plus optional page text, from a binary on your own machine and without an API key for many engines. The author's retrieval-only SealQA run on 2 November 2026 found the reference page in the top 10 results for 65.77% of 111 Seal-0 questions, with a median response of 1.85 s. Those are retrieval rates, not answer accuracy, and they used the project's own setup.
The central issue is not the code but the providers. A metasearch engine is only as legitimate as the search engines it queries, and the README now opens with an apology: the author promoted performance before checking provider terms. Google integrations have been removed, the Yahoo! JAPAN and Mojeek HTML adapters are off by default pending permission review, and the provider ledger lists 270 configuration entries with many terms still unreviewed. Running it privately does not exempt your queries from those terms.
Security work is visible and recent. An audit dated 2 November 2026 found server-side request forgery paths in page and image fetching, including IPv6 and redirect bypasses; the 3 November review records the fixes, 913 passing tests and two remaining unsoundness advisories in a MySQL dependency. Page reads now refuse to run through outgoing proxies so they can check every address.
The pace is the other caution. The repository was created on 18 October 2026 and reached v0.27.1 on 3 November, with about 776 stars and 4 contributors; the default port changed from 8888 to 29483 along the way. For a personal agent on loopback it is a reasonable choice; as a shared service it needs a terms review per provider first.
Where it earns its place
A developer running a local coding agent
Give the agent web search without paying per query
Install the release binary, verify its SHA-256 sidecar, run it on loopback and register rustxng mcp. Search returns five results with 500-character snippets by default; the agent calls read_page only when it needs evidence.
A researcher building a retrieval evaluation
Compare grounding sources on a fixed question set
Use the documented SealQA protocol and per-question results as a baseline, with max_results and include_raw_content to control what reaches the model. Record which engines were enabled, since results depend on upstream availability.
Before you commit
- Setup
- Download a release binary for Linux, macOS or Windows and check its .sha256 file, or cargo install with Rust 1.88 or later, or docker build. Start with --bind 127.0.0.1 --port 29483 and check /healthz.
- Integrations
- HTTP search API with JSON, CSV, RSS and HTML output; MCP server over stdio with search and read_page; optional Valkey or Redis cache; authenticated providers via headers or JSON.
- Data and privacy
- Runs locally, but every query is sent to the upstream engines selected for it. No independent index; the experimental local index is off by default.
- Cost at scale
- No licence fee; optional paid providers charge their own rates, and free engines may rate-limit or forbid automated, high-volume use.
- Limits
- Engines that keep returning nothing are rested for 300 seconds after 8 empty results; page reads fail when an outgoing proxy is configured; token-specific budgets are not yet implemented.
What’s good
- Single Rust binary with JSON API and MCP tools
- Optional page text with character limits built for agent context
- Many engines work without API keys
- Recent public audit with documented fixes
What’s not
- Provider terms largely unreviewed; Google removed
- Created on 18 October 2026 and at v0.27.1 within about two weeks
- AGPL-3.0 obligations for modified network services
- Benchmarks are the author's own and predate the new defaults
Best for
Developers who want a local web search tool for their own agents and are willing to check each enabled provider's terms.
RustXNG alternatives
RustXNG: common questions
- Is RustXNG worth it?
- A fast, agent-friendly way to self-host web search, held back by unresolved questions over whether its upstream providers allow this use. We rate it 3.5 out of 5.
- How much does RustXNG cost?
- Free under the AGPL-3.0-or-later licence. Optional authenticated search providers bill you directly.
- What are the downsides of RustXNG?
- Provider terms largely unreviewed; Google removed; created on 18 October 2026 and at v0.27.1 within about two weeks; aGPL-3.0 obligations for modified network services; benchmarks are the author's own and predate the new defaults.
- Who is RustXNG best for?
- Developers who want a local web search tool for their own agents and are willing to check each enabled provider's terms.
- How much does RustXNG cost for a team or in production?
- No licence fee; optional paid providers charge their own rates, and free engines may rate-limit or forbid automated, high-volume use.
- Is RustXNG safe for company data?
- Runs locally, but every query is sent to the upstream engines selected for it. No independent index; the experimental local index is off by default.
- What are the best RustXNG alternatives?
- The closest alternatives we have reviewed are Firecrawl.
Answers checked Nov 3, 2026.
