websearch 0.1.1

High-performance Rust library and CLI tool for multi-provider web search. Supports Google, ArXiv, DuckDuckGo, Tavily AI, and more with aggregation strategies.
Documentation
[package]
name = "websearch"
version = "0.1.1"
edition = "2021"
description = "High-performance Rust library and CLI tool for multi-provider web search. Supports Google, ArXiv, DuckDuckGo, Tavily AI, and more with aggregation strategies."
license = "MIT"
repository = "https://github.com/xynehq/websearch"
homepage = "https://github.com/xynehq/websearch"
keywords = ["search", "web", "cli", "multi-provider", "library"]
authors = ["Zereraz"]
readme = "README.md"

[package.metadata]
original_typescript_version = "https://github.com/PlustOrg/search-sdk"

[lib]
name = "websearch"
path = "src/lib.rs"

[[bin]]
name = "websearch"
path = "src/bin/main.rs"

[dependencies]
# HTTP client
reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false }
# Async runtime
tokio = { version = "1.0", features = ["full"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# URL manipulation
url = "2.5"
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# HTML parsing for providers like DuckDuckGo
scraper = "0.18"
# XML parsing for ArXiv
quick-xml = { version = "0.31", features = ["serialize"] }
# Logging
log = "0.4"
# Date/time handling
chrono = { version = "0.4", features = ["serde"] }
# Async traits
async-trait = "0.1"
# Futures utilities
futures = "0.3"
# CLI argument parsing
clap = { version = "4.4", features = ["derive", "env"] }
# Enhanced terminal output
colored = "2.0"

[dev-dependencies]
tokio-test = "0.4"
env_logger = "0.10"
# Additional testing utilities
tempfile = "3.8"
wiremock = "0.5"
serial_test = "3.0"