screenshotbase_sdk/
lib.rs

1//! screenshotbase
2//! 
3//! A Rust client for the `screenshotbase.com` API. It provides:
4//! - API status retrieval
5//! - Website screenshot capture to image/PDF bytes
6//! 
7//! The API reference: https://screenshotbase.com/docs/
8//! 
9//! Authentication is performed via the `X-API-Key` header and also appended
10//! as a query parameter `api_key` for compatibility.
11//! 
12//! By default this crate exposes async APIs via `reqwest`. Enable the `blocking`
13//! feature to also use a synchronous client.
14//! 
15//! Basic async usage:
16//! 
17//! ```no_run
18//! # #[tokio::main]
19//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
20//! let api_key = std::env::var("SCREENSHOTBASE_API_KEY")?;
21//! let client = screenshotbase_sdk::client::ScreenshotbaseClient::new(api_key)?;
22//! 
23//! // Status
24//! let status = client.get_status().await?;
25//! println!("Plan: {:?}", status.plan);
26//! 
27//! // Take a screenshot
28//! let result = client.take_screenshot(
29//!     "https://example.com",
30//!     screenshotbase_sdk::types::RenderOptions {
31//!         format: Some(screenshotbase_sdk::types::ImageFormat::Png),
32//!         full_page: Some(true),
33//!         width: Some(1280),
34//!         height: Some(800),
35//!         ..Default::default()
36//!     }
37//! ).await?;
38//! println!("Content-Type: {:?}", result.content_type);
39//! println!("Received {} bytes", result.bytes.len());
40//! # Ok(()) }
41//! ```
42//! 
43//! Blocking usage (enable `blocking` feature):
44//! 
45//! ```no_run
46//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
47//! # #[cfg(feature = "blocking")]
48//! {
49//!     let api_key = std::env::var("SCREENSHOTBASE_API_KEY")?;
50//!     let client = screenshotbase_sdk::client::ScreenshotbaseBlockingClient::new(api_key)?;
51//!     let status = client.get_status()?;
52//!     println!("Plan: {:?}", status.plan);
53//!     let _bytes = client.take_screenshot(
54//!         "https://example.com",
55//!         screenshotbase_sdk::types::RenderOptions::default()
56//!     )?;
57//! }
58//! # Ok(()) }
59//! ```
60
61pub mod client;
62pub mod error;
63pub mod types;
64