merriam-webster-http 0.2.0

An HTTP client for the Merriam Webster's Dictionary API
Documentation

Merriam Webster HTTP

An HTTP client for the Merriam Webster's Dictionary API

CI Crate API

Example

use std::env;

use merriam_webster_http::MerriamWebsterClient;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt::init();

    let api_key = env::var("MERRIAM_WEBSTER_API_KEY")?;
    let client = MerriamWebsterClient::new(api_key.into());

    let defs = client
        .collegiate_definition("documentation".to_string())
        .await?;
    let def = defs.first()
        .expect(format!("No definition found for {}", word).as_str());
    let shortdefs = def.shortdef.as_ref().unwrap();

    println!("Short definitions for 'documentation': {shortdefs:#?}");

    Ok(())
}

Features

TLS

Note: not enabling any TLS feature is supported for use behind a proxy; Merrium Webster's API is HTTPS only.

Note: this TLS code was taken from twilight-http in accodance with its license.

merriam-webster-http has features to enable HTTPS connectivity with hyper. These features are mutually exclusive. rustls-native-roots is enabled by default.

native

The native feature uses a HTTPS connector provided by hyper-tls.

To enable native, do something like this in your Cargo.toml:

[dependencies]
merriam-webster-http = { default-features = false, features = ["native"], version = "0.1" }

rustls-native-roots

The rustls-native-roots feature uses a HTTPS connector provided by hyper-rustls, which uses rustls as the TLS backend, and enables its native-tokio feature, which uses rustls-native-certs for root certificates.

This is enabled by default.

rustls-webpki-roots

The rustls-webpki-roots feature uses a HTTPS connector provided by hyper-rustls, which uses rustls as the TLS backend, and enables its webpki-tokio feature, which uses webpki-roots for root certificates.

This should be preferred over rustls-native-roots in Docker containers based on scratch.

Trust-DNS

The trust-dns enables hyper-trust-dns, which replaces the default GaiResolver in hyper. hyper-trust-dns instead provides a fully async DNS resolver on the application level.

License