Skip to main content

Crate cameo

Crate cameo 

Source
Expand description

§cameo

Unified movie/TV show database SDK for Rust.

§Quick Start

use cameo::providers::tmdb::{TmdbClient, TmdbConfig};
use cameo::unified::{CameoClient, SearchProvider};

// Low-level TMDB client
let client = TmdbClient::new(TmdbConfig::new("your-tmdb-token"))?;
let results = client.search_movies("Inception", None).await?;

// High-level unified facade
let cameo = CameoClient::builder()
    .with_tmdb(TmdbConfig::new("your-tmdb-token"))
    .build()?;
let movies = cameo.search_movies("Dune", None).await?;

§AniList (anime/manga)

use cameo::providers::anilist::{AniListClient, AniListConfig};
use cameo::unified::{CameoClient, SearchProvider};

// Low-level AniList client (no auth required)
let client = AniListClient::new(AniListConfig::new())?;
let results = client.search_movies("Your Name", None).await?;

// High-level unified facade (AniList only)
let cameo = CameoClient::builder()
    .with_anilist(AniListConfig::new())
    .build()?;
let anime = cameo.search_tv_shows("Attack on Titan", None).await?;

Re-exports§

pub use core::error::CameoError;
pub use core::config::TimeWindow;
pub use core::pagination::PaginatedResponse;
pub use core::pagination::into_stream;
pub use cache::CacheBackend;
pub use cache::CacheError;
pub use cache::CacheKey;
pub use cache::CacheTtlConfig;
pub use cache::MediaType;
pub use cache::SqliteCache;
pub use providers::anilist::error::AniListGqlError;
pub use providers::anilist::AniListClient;
pub use providers::anilist::AniListConfig;
pub use providers::anilist::AniListError;
pub use providers::tmdb::TmdbClient;
pub use providers::tmdb::TmdbConfig;
pub use providers::tmdb::TmdbError;
pub use unified::CameoClient;
pub use unified::CameoClientBuilder;
pub use unified::CameoClientError;
pub use unified::DetailProvider;
pub use unified::DiscoveryProvider;
pub use unified::Genre;
pub use unified::MediaProvider;
pub use unified::RecommendationProvider;
pub use unified::SearchProvider;
pub use unified::SeasonProvider;
pub use unified::UnifiedEpisode;
pub use unified::UnifiedMovie;
pub use unified::UnifiedMovieDetails;
pub use unified::UnifiedPerson;
pub use unified::UnifiedPersonDetails;
pub use unified::UnifiedSearchResult;
pub use unified::UnifiedSeasonDetails;
pub use unified::UnifiedStreamingService;
pub use unified::UnifiedTvShow;
pub use unified::UnifiedTvShowDetails;
pub use unified::UnifiedWatchProviderEntry;
pub use unified::UnifiedWatchProviders;
pub use unified::UnknownGenre;
pub use unified::WatchProviderTrait;

Modules§

cache
Caching layer for transparent API response caching. Caching layer for the cameo SDK.
core
Shared core types: pagination, configuration, errors.
generated
Auto-generated low-level API client code (from progenitor).
providers
Provider implementations.
unified
Unified cross-provider types, traits, and facade client.