Initial commit: immich-sdk v1.137.0
This commit is contained in:
58
src/lib.rs
Normal file
58
src/lib.rs
Normal file
@@ -0,0 +1,58 @@
|
||||
//! # 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");
|
||||
Reference in New Issue
Block a user