searxng-rust: un metabuscador en Rust inspirado en SearXNG

Fuentes: searxng-rust: a metadata search engine similar to SearXNG, written in Rust

searxng-rust es una biblioteca y servidor en Rust que actúa como metabuscador de metadatos al estilo SearXNG: recibe una consulta en el endpoint GET /search y la lanza en paralelo contra DuckDuckGo, Brave, Startpage y Yahoo mediante reqwest. Cada motor analiza el HTML devuelto con selectores CSS sobre el parser html5ever de Mozilla, y los resultados se deduplican por URL normalizada (eliminando parámetros de seguimiento, prefijos de locale y reordenando los parámetros de consulta). Las coincidencias repetidas se fusionan con el algoritmo Reciprocal Rank Fusion (RRF), donde la puntuación de cada URL es la suma de 1/(60 + posición) en cada motor, de forma que las páginas devueltas por varios buscadores obtienen un mejor ranking.

El proyecto se distribuye como crate bajo el nombre metadata-search-engine-rs en su versión 0.1 e incluye un servidor HTTP con punto de control /health, endpoint de búsqueda que devuelve JSON con título, URL, fragmento, motores consultados y puntuación, y códigos de error 400 ante consultas vacías y 503 si todos los motores fallan. Es configurable mediante variables de entorno como PORT o MAX_RESULTS y soporta registro de diagnóstico con RUST_LOG=debug.

La documentación ofrece ejemplos de uso tanto del motor individual como del agregador combinado, instrucciones de instalación con cargo add o git clone, una suite de pruebas con tests unitarios por módulo (normalizer, aggregator, cada motor y los handlers del servidor) y tests live marcados con #[ignore] que requieren conexión a internet. También se explica cómo añadir nuevos motores implementando el trait SearchEngine y se menciona un TUI complementario basado en ratatui disponible como crate aparte. Requiere Rust 1.75 o superior.