Skip to main content

Module rate_limiting

Module rate_limiting 

Source
Expand description

Rate limiting for enterprise workloads.

This module provides rate limiting capabilities for controlling request rates to GPU kernels and system resources, supporting both global and per-tenant limits.

ยงFeatures

  • Token bucket and sliding window algorithms
  • Per-tenant rate limiting
  • Global rate limiting
  • Configurable burst capacity
  • Real-time statistics

ยงExample

โ“˜
use ringkernel_core::rate_limiting::{RateLimiter, RateLimitConfig};

let config = RateLimitConfig::default()
    .with_requests_per_second(100)
    .with_burst_size(50);

let limiter = RateLimiter::new(config);

if limiter.check("tenant_1").is_ok() {
    // Request allowed
}

Structsยง

FixedWindow ๐Ÿ”’
Fixed window rate limiter state.
LeakyBucket ๐Ÿ”’
Leaky bucket rate limiter state.
RateLimitConfig
Configuration for rate limiting.
RateLimitGuard
RAII guard for rate-limited operations.
RateLimiter
Global rate limiter.
RateLimiterBuilder
Builder for creating rate limiters.
RateLimiterStats ๐Ÿ”’
Internal statistics counters.
RateLimiterStatsSnapshot
Snapshot of rate limiter statistics.
SlidingWindow ๐Ÿ”’
Sliding window rate limiter state.
TenantLimiter ๐Ÿ”’
Per-tenant rate limiter entry.
TokenBucket ๐Ÿ”’
Token bucket rate limiter state.

Enumsยง

LimiterState ๐Ÿ”’
Internal limiter state.
RateLimitAlgorithm
Rate limiting algorithm to use.
RateLimitError
Errors that can occur during rate limiting.

Traitsยง

RateLimiterExt
Extension trait for acquiring guards.

Functionsยง

shared_rate_limiter
Create a shared rate limiter.

Type Aliasesยง

RateLimitResult
Result type for rate limiting operations.
SharedRateLimiter
Thread-safe, shareable rate limiter.