#api-client #tmdb #async-client #async-api

tmdb-api

Yet another TMDB client. This one is using async methods.

20 releases (7 breaking)

0.8.0 Mar 26, 2024
0.6.0 Jan 21, 2024
0.5.2 Nov 28, 2023
0.5.0 Jul 26, 2023
0.3.3 Oct 26, 2022

#321 in Web programming

Download history 53/week @ 2024-07-01 2/week @ 2024-07-29 20/week @ 2024-08-05 55/week @ 2024-08-12 24/week @ 2024-08-19 74/week @ 2024-08-26 261/week @ 2024-09-02 256/week @ 2024-09-09 96/week @ 2024-09-23

619 downloads per month
Used in movie-rename

MIT license

1.5MB
6K SLoC

Rust client for The Movie DB API

This is yet another client for TMDB, but it supports async functions.

Installing

cargo add tmdb-api

Usage

use tmdb_api::tvshow::search::TVShowSearch;
use tmdb_api::prelude::Command;
use tmdb_api::client::Client;
use tmdb_api::client::reqwest::ReqwestExecutor;

#[tokio::main]
async fn main() {
    let secret = std::env::var("TMDB_TOKEN_V3").unwrap();
    let client = Client::<ReqwestExecutor>::new(secret);
    let cmd = TVShowSearch::new("simpsons".into());

    let result = cmd.execute(&client).await.unwrap();
    let item = result.results.first().unwrap();
    println!("TVShow found: {}", item.inner.name);
}

Features

Running the tests

cargo test

If you want to run some integration tests, just export a TMDB_TOKEN_V3 environment variable and run

cargo test --features integration

lib.rs:

Another implementation of a client for the TMDB API

It provides a support for async and implements each command using the Command pattern.

Dependencies

~1–12MB
~140K SLoC