This crate is a fork of the original runpod.rs developed by Patrick Barker.
A Rust client library for the Runpod API. This SDK provides a type-safe, ergonomic interface for managing Pods, Serverless endpoints, templates, network volumes, and more.
- Serverless Endpoints: Full endpoint management with configuration
- Type Safety: Strongly typed models with comprehensive validation
- Async/Await: Built on modern async Rust with
tokioandreqwest
Add this to your Cargo.toml:
[dependencies]
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }
runpod-sdk = { version = "0.1", features = [] }use runpod_sdk::{RunpodConfig, Result};
use runpod_sdk::model::v1::ListPodsQuery;
use runpod_sdk::service::v1::PodsService;
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<()> {
let client = RunpodConfig::builder()
.with_api_key("your-api-key")
.with_base_url("https://api.runpod.io/v1")
.with_timeout(Duration::from_secs(60))
.build_v1()?;
let pods = client.list_pods(ListPodsQuery::default()).await?;
println!("Found {} pods", pods.len());
Ok(())
}The SDK can be configured using environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
RUNPOD_API_KEY |
Yes | - | Your RunPod API key from console settings |
RUNPOD_BASE_URL |
No | https://rest.runpod.io/v1 |
Custom REST API base URL |
RUNPOD_GRAPHQL_URL |
No | https://api.runpod.io/graphql |
Custom GraphQL API URL (requires graphql feature) |
RUNPOD_TIMEOUT_SECS |
No | 30 |
Request timeout in seconds (max: 300) |
use runpod_sdk::{RunpodClient, Result};
#[tokio::main]
async fn main() -> Result<()> {
let client: RunpodClient = RunpodClient::from_env()?;
Ok(())
}Choose between two TLS implementations:
# Default: rustls-tls (recommended)
runpod-sdk = { version = "0.1", features = [] }
# Alternative: native-tls
runpod-sdk = { version = "0.1", features = ["native-tls"], default-features = false }Enable comprehensive logging and tracing:
runpod-sdk = { version = "0.1", features = ["tracing"] }Enable string parsing and conversion for all enums:
runpod-sdk = { version = "0.1", features = ["strum"] }The examples/ directory contains comprehensive usage examples:
# Set your API key
export RUNPOD_API_KEY="your-api-key"
# Run the basic usage example
cargo run --example basic_usage
# Run the endpoints management example
cargo run --example manage_endpoints
# Run the pods management example
cargo run --example manage_podsContributions are welcome! Please read our Contributing Guide for details on how to submit pull requests, report issues, and contribute to the project.
This project is licensed under the MIT License - see the LICENSE.txt file for details.