| Crates.io | reliefweb |
| lib.rs | reliefweb |
| version | 0.1.2 |
| created_at | 2025-09-03 13:01:51.379598+00 |
| updated_at | 2025-09-10 11:25:47.704075+00 |
| description | A Rust client for the ReliefWeb API |
| homepage | https://github.com/cpellet/reliefweb-rust |
| repository | https://github.com/cpellet/reliefweb-rust |
| max_upload_size | |
| id | 1822479 |
| size | 123,921 |
A fully asynchronous Rust client for the ReliefWeb API, providing typed endpoints for reports, disasters, countries, jobs, blogs, books, sources, and trainings.
reqwest + tokio.reportsdisasterscountriesjobstrainingsourcesblogsbooksAdd to your Cargo.toml:
[dependencies]
reliefweb-rust = "0.1.0"
tokio = { version = "1.47.1", features = ["full"] }
use reliefweb_rust::{Client, QueryParams, APIVersion};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Client::new("api.reliefweb.int", "my_app_name", APIVersion::V2)?;
// List reports
let reports = client.reports()
.list(Some(&QueryParams::new().limit(5)))
.await?;
for report in reports.data {
println!("Report: {:?}", report.fields.title);
}
// Get a single report
if let Some(first_report) = reports.data.first() {
let report_detail = client.reports()
.get(&first_report.id, None, None, None)
.await?;
println!("Full report details: {:?}", report_detail.data[0].fields);
}
Ok(())
}
You can filter, sort, and limit results using QueryParams:
use reliefweb_rust::{QueryParams, QueryProfile};
let params = QueryParams::new()
.limit(10)
.profile(QueryProfile::Minimal);
Full API documentation is available at docs.rs
Licensed under MIT.
Contributions are welcome! Please open an issue or submit a pull request.