| Crates.io | cf-turnstile |
| lib.rs | cf-turnstile |
| version | 0.2.0 |
| created_at | 2023-10-04 07:01:02.505913+00 |
| updated_at | 2024-09-10 02:00:11.238872+00 |
| description | A Rust client for Cloudflare Turnstile |
| homepage | https://github.com/sycertech/cf-turnstile |
| repository | https://github.com/sycertech/cf-turnstile |
| max_upload_size | |
| id | 991939 |
| size | 27,012 |
A Rust client for Cloudflare Turnstile.
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);
To utilize Turnstile's indempotency_key feature, you can enable the idempotency feature flag.
This will enable the idempotency_key field on the SiteVerifyRequest struct and the generate_indepotency_key function.
Note: not enabling any TLS feature is supported for use behind a proxy; Turnstile's API is HTTPS only.
Note: this TLS code was taken from twilight-http in accodance with its license.
cf-turnstile has features to enable HTTPS connectivity with hyper. These
features are mutually exclusive. rustls-native-roots is enabled by default.
nativeThe native feature uses a HTTPS connector provided by hyper-tls.
To enable native, do something like this in your Cargo.toml:
[dependencies]
cf-turnstile = { default-features = false, features = ["native"], version = "0.1" }
rustls-native-rootsThe 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-rootsThe 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.