14 releases (3 stable)

new 1.2.0 Dec 18, 2024
1.1.0 Dec 17, 2024
0.1.10 Dec 16, 2024

#34 in Internationalization (i18n)

Download history 44/week @ 2024-11-29 477/week @ 2024-12-06 745/week @ 2024-12-13

1,266 downloads per month

MIT license

53KB
1K SLoC

Contributors Forks Stargazers Issues License Build


deeplx-rs

A Rust package for unlimited DeepL translation

Features · Usage · Integration · License

Features

  • Docker support for easy deployment.
  • Proxy support by default (can be disabled via features).
  • Optional impersonation using the impersonate feature to mimic browser settings.

Usage

Docker Deployment

  1. Clone the repository:
    git clone https://github.com/hominsu/deeplx-rs.git
    
  2. Start the container:
    cd deploy
    docker-compose up -d
    

Install with Cargo

cargo install --features=impersonate,server

Integration

Installation

Add deeplx to your Cargo.toml:

[dependencies]
deeplx = "1"

By default, deeplx includes proxy support. If you do not need proxy support, disable the default features:

[dependencies]
deeplx = { version = "1", default-features = false }

If you want to enable the impersonate feature to mimic browser headers, TLS settings, etc.:

[dependencies]
deeplx = { version = "1", features = ["impersonate"] }

Configuration

deeplx is configured via the Config struct. You can specify options such as proxy, timeout, and more. For example:

use deeplx::{Config, DeepLX};

let translator = DeepLX::new(Config {
proxy: Some("http://pro.xy".to_string()),
..Default::default ()
});

If you have disabled the proxy feature, you can simply omit the proxy field:

use deeplx::{Config, DeepLX};

let translator = DeepLX::new(Config::default ());

Usage

Below is an example using tokio for async execution:

use deeplx::{Config, DeepLX};

#[tokio::main]
async fn main() {
    let translator = DeepLX::new(Config {
        proxy: Some("http://pro.xy".to_string()),
        ..Default::default()
    });
    // Or without proxy:
    // let translator = DeepLX::new(Config::default());

    match translator.translate("auto", "zh", "Hello, world!", None, None).await {
        Ok(res) => println!("Translated: {}", res.data),
        Err(e) => eprintln!("Error: {}", e),
    }
}

License

Distributed under the MIT License. See LICENSE for more information.

Dependencies

~11–26MB
~471K SLoC