Skip to main content

web_search/
lib.rs

1//! Web Search - Multi-provider web search aggregator
2//!
3//! A library for aggregating search results from multiple search engines
4//! (Google, DuckDuckGo, Bing) with support for result merging and reranking.
5//!
6//! # Example
7//!
8//! ```no_run
9//! use web_search::{WebSearchEngine, SearchOptions};
10//!
11//! #[tokio::main]
12//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
13//!     let engine = WebSearchEngine::new();
14//!     let results = engine.search("rust programming", SearchOptions::default()).await?;
15//!
16//!     for result in results {
17//!         println!("{}: {}", result.title, result.url);
18//!     }
19//!     Ok(())
20//! }
21//! ```
22
23pub mod error;
24pub mod merger;
25pub mod providers;
26pub mod search;
27pub mod transport;
28
29pub use error::SearchError;
30pub use merger::{MergeOptions, MergeStrategy};
31pub use providers::{
32    get_default_provider_ids, get_provider_ids, get_registry, is_known_category, RegistryEntry,
33    SearchOptions, SearchResult, CATEGORIES,
34};
35pub use search::{
36    DetailedSearchResult, ProviderError, ProviderOutcome, ProviderOutcomeStatus, WebSearchConfig,
37    WebSearchEngine,
38};
39pub use transport::{ReqwestTransport, SearchTransport, TransportRequest, TransportResponse};