yandex-translate-v2

Crates.ioyandex-translate-v2
lib.rsyandex-translate-v2
version0.1.3
created_at2026-01-08 16:46:31.838779+00
updated_at2026-01-08 16:53:13.775112+00
descriptionYandex Translate API v2 client (and not only v2).
homepagehttps://crates.io/crates/yandex-translate-v2
repositoryhttps://github.com/savannstm/yandex-translate-v2
max_upload_size
id2030681
size66,063
savannstm (savannstm)

documentation

https://docs.rs/yandex-translate-v2

README

yandex-translate

Simple Yandex Translate API client vibe-coded by Claude.

Installation

cargo add yandex-translate-v2 # Blocking
cargo add yandex-translate-v2 --no-default-features -F "async" # Asynchronous

Example

Blocking

use yandex_translate_v2::{
    AuthMethod,
    TranslateRequest,
    YandexTranslateClient,
};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = YandexTranslateClient::with_api_key("YOUR_API_KEY")?;

    let texts = ["Hello world", "How are you?"];

    let request = TranslateRequest {
        folder_id: "YOUR_FOLDER_ID",
        texts: &texts,
        target_language_code: "ru",
        source_language_code: Some("en"),
    };

    let response = client.translate(&request)?;

    for translation in response.translations {
        println!("Translated: {}", translation.text);

        if let Some(lang) = translation.detected_language_code {
            println!("Detected language: {}", lang);
        }
    }

    Ok(())
}

Asynchronous

use yandex_translate_v2::{
    TranslateRequest,
    YandexTranslateClient,
};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = YandexTranslateClient::with_iam_token("YOUR_IAM_TOKEN")?;

    let texts = ["Good morning", "Nice to meet you"];

    let request = TranslateRequest {
        folder_id: "YOUR_FOLDER_ID",
        texts: &texts,
        target_language_code: "de",
        source_language_code: None, // let API detect language
    };

    let response = client.translate(&request).await?;

    for translation in response.translations {
        println!("Translated: {}", translation.text);
    }

    Ok(())
}

Features

  • blocking - enabled by default. Uses blocking/synchronous requests.
  • async - Uses asynchronous requests. Mutually exclusive with blocking.

License

Project is licensed under WTFPL.

Commit count: 0

cargo fmt