Skip to main content

Crate web_search

Crate web_search 

Source
Expand description

Web Search - Multi-provider web search aggregator

A library for aggregating search results from multiple search engines (Google, DuckDuckGo, Bing) with support for result merging and reranking.

§Example

use web_search::{WebSearchEngine, SearchOptions};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let engine = WebSearchEngine::new();
    let results = engine.search("rust programming", SearchOptions::default()).await?;

    for result in results {
        println!("{}: {}", result.title, result.url);
    }
    Ok(())
}

Re-exports§

pub use error::SearchError;
pub use merger::MergeOptions;
pub use merger::MergeStrategy;
pub use providers::get_default_provider_ids;
pub use providers::get_provider_ids;
pub use providers::get_registry;
pub use providers::is_known_category;
pub use providers::RegistryEntry;
pub use providers::SearchOptions;
pub use providers::SearchResult;
pub use providers::CATEGORIES;
pub use search::DetailedSearchResult;
pub use search::ProviderError;
pub use search::ProviderOutcome;
pub use search::ProviderOutcomeStatus;
pub use search::WebSearchConfig;
pub use search::WebSearchEngine;
pub use transport::ReqwestTransport;
pub use transport::SearchTransport;
pub use transport::TransportRequest;
pub use transport::TransportResponse;

Modules§

error
Error types for web search operations
merger
Search result merger with reranking support
providers
Search provider implementations
search
Web Search Engine - main entry point
transport
Caller-owned HTTP transport contract and exact response captures.