Orbit Framework
An ultra-modern, asynchronous, cross-platform C++ Web Framework.
Loading...
Searching...
No Matches
middleware::DistributedRateLimiter Class Reference

Distributed rate limiter middleware using Redis. More...

#include <DistributedRateLimiter.hpp>

Public Member Functions

 DistributedRateLimiter (const std::string &redis_host, int redis_port, size_t max_requests, std::chrono::seconds window)
 Constructs a new Distributed Rate Limiter.
 
bool operator() (http::HttpRequest &req, std::shared_ptr< http::ResponseWriter > writer)
 Middleware execution operator.
 

Detailed Description

Distributed rate limiter middleware using Redis.

Constructor & Destructor Documentation

◆ DistributedRateLimiter()

middleware::DistributedRateLimiter::DistributedRateLimiter ( const std::string &  redis_host,
int  redis_port,
size_t  max_requests,
std::chrono::seconds  window 
)

Constructs a new Distributed Rate Limiter.

Parameters
redis_hostThe Redis server host.
redis_portThe Redis server port.
max_requestsMaximum number of requests allowed in the time window.
windowThe time window for rate limiting.

Member Function Documentation

◆ operator()()

bool middleware::DistributedRateLimiter::operator() ( http::HttpRequest req,
std::shared_ptr< http::ResponseWriter writer 
)

Middleware execution operator.

Parameters
reqThe HTTP request.
writerThe HTTP response writer.
Returns
true If the request is allowed.
false If the request is rate-limited.

The documentation for this class was generated from the following files: