1个不稳定版本
| 0.1.0 | 2023年10月4日 |
|---|
#423 在 HTTP客户端
20KB
272 行
cf-turnstile
Cloudflare Turnstile的Rust客户端。
示例
use cf_turnstile::{SiteVerifyRequest, TurnstileClient};
let client = TurnstileClient::new("my-secret".to_string().into());
let validated = client.siteverify(SiteVerifyRequest {
response: "myresponse".to_string(),
..Default::default()
}).await?;
assert!(validated.success);
功能
幂等性
要利用Turnstile的indempotency_key功能,您可以在SiteVerifyRequest结构和generate_indepotency_key函数上启用idempotency功能标志。
这将启用idempotency_key字段,并启用generate_indepotency_key函数。
TLS
注意:不支持在不启用任何TLS功能的情况下使用代理;Turnstile的API仅支持HTTPS。
注意:此TLS代码取自twilight-http,遵循其许可证。
cf-turnstile具有与hyper启用HTTPS连接的功能。这些功能互斥。默认启用rustls-native-roots。
本地
native功能使用由hyper-tls提供的HTTPS连接器。
要启用native,在您的Cargo.toml中做如下操作
[dependencies]
cf-turnstile = { default-features = false, features = ["native"], version = "0.1" }
rustls-native-roots
rustls-native-roots功能使用由hyper-rustls提供的HTTPS连接器,该连接器使用rustls作为TLS后端,并启用其native-tokio功能,该功能使用rustls-native-certs作为根证书。
默认启用此功能。
rustls-webpki-roots
rustls-webpki-roots 功能使用由 hyper-rustls 提供的 HTTPS 连接器,该连接器使用 rustls 作为 TLS 后端,并启用其 webpki-tokio 功能,该功能使用 webpki-roots 进行根证书。
在基于 scratch 的 Docker 容器中,应优先选择此功能而不是 rustls-native-roots。
Trust-DNS
trust-dns 启用了 hyper-trust-dns,它替换了 hyper 中的默认 GaiResolver。 hyper-trust-dns 而是在应用级别提供了一个完全异步的 DNS 解析器。
依赖关系
~7–20MB
~298K SLoC