Quick Start
Install
# From crates.io (once published)
cargo install seia
# From source
cargo install --path .
First search (CLI)
The default engine is DuckDuckGo — free, no key, works immediately:
seia search "rust async patterns"
# Choose another engine
seia search "Klein bottle" --engine wikipedia
# Machine-readable output
seia search "climate change" --json
# Pull the full page text for each result (slower)
seia search "tokio runtime" --fetch
Run seia engines to list every engine and whether it needs a key.
Engines that need a key
Export the key in your shell — seia reads it automatically:
export TAVILY_API_KEY=tvly-xxxxx
seia search "react server components" --engine tavily
export SEARXNG_URL=http://localhost:8080
seia search "open source licenses" --engine searxng
Through a proxy
SearchClient honours the standard HTTPS_PROXY / HTTP_PROXY environment
variables via reqwest — no flag needed:
HTTPS_PROXY=http://localhost:7890 seia search "hello world"
Use it as a library
use seia::{SearchClient, Engine};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = SearchClient::new();
let result = client.search("rust async", Engine::Duckduckgo).await?;
for item in &result.items {
println!("{} — {}", item.title, item.url);
}
Ok(())
}
Continue to Engines for the full engine matrix, or Library Usage for the programmatic API.