sauce-api 0.9.1

API for searching for the original source of images.
Documentation
# sauce-api

[![documentation](https://docs.rs/sauce-api/badge.svg)](https://docs.rs/sauce-api) [![crates.io](https://img.shields.io/crates/v/sauce-api)](https://crates.io/crates/sauce-api)

A simple-to-use async API for finding the source of an image.

Best used with Tokio, but async-std should work too.

## Note

Tests only pass with `--all-features`

## Supported Sources

- [IQDB]https://iqdb.org
- [saucenao]https://saucenao.com
- [Yandex]https://yandex.com ! NOTE: DEPRECATED SOON !

If you wish to see more, please submit PRs or a request in an issue!

## Usage

### IQDB

```rust
use sauce_api::prelude::*;

async fn find_source(url: String) {
    let source = IQDB;
    let res: Result<SauceResult, String> = source.check_sauce(url).await; // Can take some time as IQDB is a bit slow.

    match res {
        Ok(result) => {
            println!("Found results! {:?}", result);
        }
        Err(e) => {
            eprintln!("Unable to find results: {}", e);
        }
    }
}
```

### SauceNao

```rust
use sauce_api::prelude::*;

async fn find_source(url: String) {
    let mut source = SauceNao::new();
    source.set_api_key("an_api_key".to_string());
    let res: Result<SauceResult, String> = source.check_sauce(url).await;

    match res {
        Ok(result) => {
            println!("Found results! {:?}", result);
        }
        Err(e) => {
            eprintln!("Unable to find results: {}", e);
        }
    }
}
```

### Yandex

```rust
use sauce_api::prelude::*;

async fn find_source(url: String) {
    let mut source = Yandex;
    let res: Result<SauceResult, String> = source.check_sauce(url).await;

    match res {
        Ok(result) => {
            println!("Found results! {:?}", result);
        }
        Err(e) => {
            println!("Unable to find results: {}", e);
        }
    }
}
```

## Requirements

sauce-api by default uses the native TLS framework, see [this](https://github.com/seanmonstar/reqwest#requirements) for specific details.
You may opt-in to using rustls if you would like to by enabling the `rustls` feature like this:

```toml
sauce-api = { version = "0.6.0", features = ["rustls"] }
```