Expand description
§tower-no-ai
A very simple crate to extend tower with the ability to redirect all AI-scraper bot User-Agent headers to a user-defined URL.
This can be done with something like the following (with axum):
use tower_no_ai::NoAiLayer;
use axum::routing::{get, Router};
let route = Router::new()
.route("/", get(hello_world))
// route them to a hetzner 10GB speed test file
.layer(NoAiLayer::new("https://fsn1-speed.hetzner.com/10GB.bin"));As this is built on tower, it should work perfectly with all tower-based backends.
Contributions, bug reports, and suggestions are welcome.
Dual-Licensed MIT and Apache 2.0
Structs§
- NoAi
Layer - The
towerlayer which can be added to something like anaxum::Router - NoAi
Service - The service which will redirect the requests with matching user agents
Enums§
- Service
Fut - The Future type that
NoAiService::callproduces. This has the bounds necessary to work nicely with thetower_service::ServiceAPI requirements for the associatedFuturetype.
Statics§
- AI_
AGENTS - The User-Agent patterns checked for and redirected if present
Functions§
- bot_
blocking_ robots_ txt - Returns the contents of a basic robots.txt file that explicitly disallows all the known AI bots from accessing anything under the root of this website. Can be added with something like: