//! Basic usage example for immich-sdk //! //! This example uses environment variables for configuration: //! - IMMICH_URL: The Immich server URL (defaults to http://localhost:2283) //! - IMMICH_API_KEY: Your API key (required) use immich_sdk::Client; #[tokio::main] async fn main() -> Result<(), Box> { // Configure the client from environment variables let url = std::env::var("IMMICH_URL").unwrap_or_else(|_| "http://localhost:2283".to_string()); let api_key = std::env::var("IMMICH_API_KEY").expect("IMMICH_API_KEY environment variable not set"); // Create a client let client = Client::from_url(&url)?.with_api_key(api_key); // Get server version let version = client.server().version().await?; println!("Server version: {}", version); // List albums let albums = client.albums().list().execute().await?; println!("Found {} albums", albums.len()); // Create a new album let album = client .albums() .create() .name("My New Album") .execute() .await?; println!("Created album: {} (ID: {})", album.album_name, album.id); // List assets let assets = client.assets().list().execute().await?; println!("Found {} assets", assets.len()); Ok(()) }