| Crates.io | searxng |
| lib.rs | searxng |
| version | 0.1.0 |
| created_at | 2025-08-10 20:00:54.459701+00 |
| updated_at | 2025-08-10 20:00:54.459701+00 |
| description | Lib to prepare and receive searches fo SearXNG |
| homepage | |
| repository | https://codeberg.org/slundi/searxng |
| max_upload_size | |
| id | 1789253 |
| size | 86,630 |
Asynchronous CLI for SearXNG writtent in rust 🦀, with XDG support for configuration.
cargo install searxng
searxng search "rust programming"
# with filters
searxng search "news" --categories general,news --language fr --page 2
# compact output
searxng search "python" --compact
# specific search engines
searxng search "weather" --engines google,bing
# Test connection
searxng test
# List available engines
searxng engines
# Show configuration
searxng config show
# Edit base URL
searxng config set base_url "https://search.example.com"
# Set default language to french
searxng config set language "fr"
# Set safe search level (0-2)
searxng config set safe_search 1
# Reset config
searxng config reset
Le fichier de configuration est automatiquement créé dans :
~/.config/searxng-cli/config.toml~/Library/Application Support/searxng-cli/config.toml%APPDATA%\searxng-cli\config.tomlExemple de configuration :
base_url = "https://searx.be"
default_engine = "google"
default_category = "general"
language = "fr"
safe_search = 1
use searxng_client::{SearXNGClient, SearXNGConfig, SearchParams};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Configuration
let config = SearXNGConfig {
base_url: "https://searx.be".to_string(),
default_category: Some("general".to_string()),
language: Some("fr".to_string()),
..Default::default()
};
// Client
let client = SearXNGClient::new(config);
// Recherche simple
let results = client.simple_search("rust programming").await?;
println!("Trouvé {} résultats", results.number_of_results);
// Recherche avancée
let params = SearchParams {
query: "python".to_string(),
categories: Some("general,it".to_string()),
language: Some("en".to_string()),
pageno: Some(2),
..Default::default()
};
let results = client.search(params).await?;
for result in results.results {
println!("{}: {}", result.title, result.url);
}
Ok(())
}
| Paramètre | Description | Exemples |
|---|---|---|
query |
Terme de recherche | "rust programming" |
categories |
Catégories séparées par des virgules | general,images,videos,news |
engines |
Moteurs séparés par des virgules | google,bing,duckduckgo |
language |
Code langue ISO 639-1 | fr, en, de, es |
page |
Numéro de page | 1, 2, 3 |
time_range |
Période de temps | day, week, month, year |
safe_search |
Niveau de filtrage (0=Off, 1=Modéré, 2=Strict) | 0, 1, 2 |
{
"query": "lookup words",
"number_of_results": 42,
"results": [
{
"title": "Result title",
"url": "https://example.com",
"content": "Content sample...",
"engine": "google",
"category": "general",
"score": 0.95
}
],
"suggestions": ["suggestion1", "suggestion2"],
"corrections": [],
"answers": [],
"infoboxes": []
}