Expand description
§Sandworm - Dune Analytics API Client
A Rust client library for the Dune Analytics API.
§Features
- Execute arbitrary SQL queries
- Execute saved queries by ID
- Execute query pipelines
- Get execution status and results (JSON and CSV)
- Cancel ongoing executions
- Convenience methods for running queries and waiting for results
§Quick Start
use std::time::Duration;
use arrakis::{DuneClient, Result};
#[tokio::main]
async fn main() -> Result<()> {
// Create a client with your API key
let client = DuneClient::new("your-api-key")?;
// Execute a SQL query and wait for results
let results = client.run_sql(
"SELECT * FROM ethereum.transactions LIMIT 10",
Duration::from_secs(60),
).await?;
// Process the results
if let Some(result) = results.result {
for row in result.rows {
println!("{:?}", row);
}
}
Ok(())
}§Manual Execution Flow
For more control, you can manually manage the execution lifecycle:
use arrakis::{DuneClient, ExecutionState};
let client = DuneClient::new("your-api-key")?;
// Start execution
let exec = client.execute_query(1234567).await?;
println!("Execution ID: {}", exec.execution_id);
// Poll for status
loop {
let status = client.get_execution_status(&exec.execution_id).await?;
match status.state {
ExecutionState::Completed => {
let results = client.get_execution_results(&exec.execution_id).await?;
println!("Got results!");
break;
}
ExecutionState::Failed => {
println!("Query failed!");
break;
}
_ => {
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
}
}
}Modules§
- blocking
- Blocking client for the Dune Analytics API.
Structs§
- Cancel
Execution Response - Response from cancelling an execution.
- Dune
Client - Client for interacting with the Dune Analytics API.
- Execute
Query Request - Parameters for executing a saved query.
- Execute
Response - Response from executing a query.
- Execute
SqlRequest - Parameters for executing a SQL query.
- Execution
Results Response - Response from getting execution results.
- Execution
Status Response - Response from getting execution status.
- Pipeline
Execute Response - Response from executing a pipeline.
- Query
Parameter - A query parameter.
- Result
Data - The actual result data.
- Result
Metadata - Metadata about query results.
- Result
Options - Options for fetching results.
Enums§
- Dune
Error - Errors that can occur when interacting with the Dune Analytics API.
- Execution
State - State of a query execution.
Type Aliases§
- Result
- Result type for Dune API operations.