Expand description
§duners
A Rust client for the Dune Analytics API. Execute queries, poll for completion, and deserialize results into your own types.
§Quick start
-
Get an API key from Dune and set it:
export DUNE_API_KEY="your-api-key" -
Add the dependency and run a query:
use duners::{DuneClient, DuneRequestError};
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct Row {
symbol: String,
max_price: f64,
}
#[tokio::main]
async fn main() -> Result<(), DuneRequestError> {
let client = DuneClient::from_env();
let result = client.refresh::<Row>(971694, None, None).await?;
println!("{:?}", result.get_rows());
Ok(())
}§What’s in this crate
DuneClient— Main entry point. Create withDuneClient::neworDuneClient::from_env.refresh— Run a query and wait for results (execute → poll status → return rows).- Lower-level API —
execute_query,get_status,get_results,cancel_executionfor full control. Parameter— Query parameters (text, number, date, list) for parameterized queries.parse_utils— Helpers for deserializing Dune’s JSON (e.g. dates and numbers that come as strings):datetime_from_str,f64_from_str.DuneRequestError— All request and parsing errors.
See the README for more examples and details.
Re-exports§
pub use client::DuneClient;pub use error::DuneRequestError;pub use parameters::Parameter;pub use response::ExecutionStatus;pub use response::GetResultResponse;
Modules§
- client
- error
- parameters
- parse_
utils - Utilities for parsing Dune API response fields.
- response
- Response types for Dune API methods.