1个不稳定版本

0.1.0 2023年10月4日

#423HTTP客户端

MIT 协议

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 中的默认 GaiResolverhyper-trust-dns 而是在应用级别提供了一个完全异步的 DNS 解析器。

依赖关系

~7–20MB
~298K SLoC