Crate arrakis

Crate arrakis 

Source
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§

CancelExecutionResponse
Response from cancelling an execution.
DuneClient
Client for interacting with the Dune Analytics API.
ExecuteQueryRequest
Parameters for executing a saved query.
ExecuteResponse
Response from executing a query.
ExecuteSqlRequest
Parameters for executing a SQL query.
ExecutionResultsResponse
Response from getting execution results.
ExecutionStatusResponse
Response from getting execution status.
PipelineExecuteResponse
Response from executing a pipeline.
QueryParameter
A query parameter.
ResultData
The actual result data.
ResultMetadata
Metadata about query results.
ResultOptions
Options for fetching results.

Enums§

DuneError
Errors that can occur when interacting with the Dune Analytics API.
ExecutionState
State of a query execution.

Type Aliases§

Result
Result type for Dune API operations.