25 DistributedRateLimiter(
const std::string& redis_host,
int redis_port,
size_t max_requests, std::chrono::seconds window);
39 std::chrono::seconds window_;
40 std::unique_ptr<database::RedisClient> redis_;
53inline auto distributed_rate_limit(
const std::string& redis_host,
int redis_port,
size_t max_requests, std::chrono::seconds window) {
54 return [limiter = std::make_shared<DistributedRateLimiter>(redis_host, redis_port, max_requests, window)]
56 return (*limiter)(req, writer);
Distributed rate limiter middleware using Redis.
Definition DistributedRateLimiter.hpp:15
bool operator()(http::HttpRequest &req, std::shared_ptr< http::ResponseWriter > writer)
Middleware execution operator.
Definition DistributedRateLimiter.cpp:9
auto distributed_rate_limit(const std::string &redis_host, int redis_port, size_t max_requests, std::chrono::seconds window)
Helper to create a distributed rate limiting middleware handler.
Definition DistributedRateLimiter.hpp:53
Definition Compress.hpp:4
Represents an incoming HTTP request.
Definition HttpRequest.hpp:22