962 estrellas en algo menos de cuatro semanas: RustXNG se creó el 18 de octubre de 2026 y su último commit es del 11 de noviembre. Es una reescritura en Rust de la idea de SearXNG pensada para un cliente concreto, los agentes de IA, que necesitan buscar en la web y leer páginas sin depender de una API de búsqueda de pago.
Qué es
Un metabuscador autoalojado: no tiene un índice propio de toda la web, sino que reparte cada consulta entre proveedores externos y combina los resultados en una sola lista ordenada. Lo que añade sobre la idea original es la capa para agentes: una API JSON con filtros (include_domains, exclude_domains, time_range, idioma) y, si se pide, el texto de cada página (include_raw_content=1), con un estado por resultado (ok, robots_blocked, fetch_failed…) para que el cliente sepa si reintentar o rendirse.
Trae además un servidor MCP con dos herramientas de solo lectura: search, que devuelve hasta 10 resultados, y read_page, que extrae el texto de una URL devuelta antes por search en la misma sesión, con paginación y un presupuesto de caracteres o de tokens. Esa restricción es una buena decisión de seguridad: el agente no puede pedirle que descargue una URL arbitraria. Al leer páginas comprueba que el destino y las redirecciones no sean direcciones privadas y respeta robots.txt.
Funciona con tres perfiles. standard (por defecto) usa 34 fuentes sin clave que el autor ha revisado y documentado; clean solo busca en índices locales, construidos con rustxng-index o con volcados de Wikipedia; full añade proveedores HTML cuyos términos pueden prohibir el acceso automatizado y la API de pago de Exa. La licencia es AGPL-3.0-or-later, como la de SearXNG.
Cómo se usa
Según el README, se instala con Cargo (Rust 1.89 o superior y un compilador de C), con los binarios de las releases o con Docker:
cargo install --git https://github.com/sahenjp/RustXNG.git --tag v0.31.2 --locked
rustxng --bind 127.0.0.1 --port 29483
curl --fail --get 'http://127.0.0.1:29483/search' \
--data-urlencode 'q=tokio runtime documentation' \
--data 'format=json' --data 'max_results=5'Para conectarlo a un agente basta con rustxng mcp (o rustxng mcp --profile clean para no salir a internet en las búsquedas). Escucha en 127.0.0.1 por defecto, y el README exige controles de acceso antes de exponerlo a otra red. Expone /healthz, /stats y /metrics; el primero solo comprueba el proceso, no que los proveedores respondan.
Lo que me convence y lo que no
Me convence la honestidad del README. Publica sus propias cifras y las rebaja: tras cambiar los proveedores por motivos de permisos, el perfil standard encuentra la página de referencia en los cinco primeros resultados en 67–69 de 100 preguntas, frente a 84 con la configuración anterior. Avisa de que todo está medido por un mantenedor, en una máquina y una red, y de que no hay que deducir que supera a Exa o Tavily. También documenta qué permite cada proveedor, algo que casi nadie hace.
Lo que no: es un proyecto de un mes, con 78 forks y versiones que cambian rápido (va por la 0.31.2), así que la API puede moverse. Las páginas que se renderizan con JavaScript necesitan un renderizador opcional con Firefox, y los PDF necesitan Poppler; ninguno viene activado en el binario. Y el perfil full es un riesgo legal que el propio autor señala: tener la instancia en privado no anula los términos de los buscadores.
RustXNG frente a SearXNG
SearXNG es el metabuscador libre de referencia y la base declarada de RustXNG, que mantiene su comportamiento de fallback de motores por compatibilidad.
| RustXNG | SearXNG | |
|---|---|---|
| Enfoque | Búsqueda y lectura de páginas para agentes | Metabuscador privado para personas |
| Lenguaje | Rust, un binario | Python |
| Fuentes por defecto | 34 revisadas, sin HTML de buscadores | Amplia lista de buscadores |
| Licencia | AGPL-3.0-or-later | AGPL-3.0 |
| Madurez | 962 estrellas, creado en octubre de 2026 | 39.496 estrellas, desde 2021 |
Si quieres un buscador privado para tu equipo, SearXNG sigue siendo la opción con años de uso y comunidad detrás. Si lo que necesitas es darle búsqueda web a un agente en local sin pagar una API como Tavily o Exa, RustXNG ya trae de serie el texto de las páginas, los estados de error por resultado y el servidor MCP.
Fuentes
- sahenjp/RustXNG, README y metadatos del repositorio.
- searxng/searxng, README y metadatos del repositorio.