Crates.io | merriam-webster-http |
lib.rs | merriam-webster-http |
version | 0.2.0 |
source | src |
created_at | 2023-10-14 05:02:52.622713 |
updated_at | 2023-10-14 05:02:52.622713 |
description | An HTTP client for the Merriam Webster's Dictionary API |
homepage | https://github.com/fyko/merriam-webster |
repository | https://github.com/fyko/merriam-webster |
max_upload_size | |
id | 1002922 |
size | 24,877 |
An HTTP client for the Merriam Webster's Dictionary API
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(())
}
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
.
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.