[package]
name = "webshift"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "Denoised web search library — fetch, clean, and rerank web content for AI agents."
readme = "../../README.md"
keywords = ["web-search", "html-to-text", "mcp", "llm", "web-scraping"]
categories = ["text-processing", "web-programming"]
[features]
default = ["backends"]
backends = []
llm = []
text-map = ["lol_html"]
[dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }
reqwest = { version = "0.12", default-features = false, features = ["stream", "gzip", "brotli", "json", "rustls-tls"] }
futures = "0.3"
scraper = "0.20"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
regex = "1"
rand = "0.8"
url = "2"
dirs-next = "2"
lol_html = { version = "2", optional = true }
thiserror = "2"
tracing = "0.1"
async-trait = "0.1"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "test-util"] }
wiremock = "0.6"