Files
immich-sdk/src/lib.rs
2026-04-05 15:51:10 +00:00

59 lines
1.5 KiB
Rust

//! # Immich SDK
//!
//! A modern Rust SDK for the [Immich](https://immich.app/) photo and video management server.
//!
//! ## Features
//!
//! - **Async-first**: Built on `tokio` and `reqwest` for modern async Rust
//! - **Builder pattern**: Ergonomic API with fluent builders
//! - **Type-safe**: Strongly typed models
//! - **Error handling**: Comprehensive error types with `thiserror`
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use immich_sdk::Client;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // Create a client
//! let client = Client::from_url("https://immich.example.com")?
//! .with_api_key("your-api-key");
//!
//! // List albums
//! let albums = client.albums().list().execute().await?;
//! println!("Found {} albums", albums.len());
//!
//! Ok(())
//! }
//! ```
//!
//! ## Authentication
//!
//! The SDK supports API key authentication:
//!
//! ```rust,ignore
//! use immich_sdk::Client;
//!
//! let client = Client::from_url("https://immich.example.com")?
//! .with_api_key("your-api-key-here");
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
#![warn(missing_docs)]
pub mod apis;
pub mod client;
pub mod error;
pub mod models;
// Re-export main types
pub use client::{Client, Config};
pub use error::{ImmichError, Result};
// Re-export models
pub use models::*;
/// Immich API version this SDK targets
pub const IMMICH_API_VERSION: &str = env!("CARGO_PKG_VERSION");