Code Explainers
Code explainers tagged #sliding-window
go
package retry import ( "errors"
How a retry budget caps retries in Go
rate-limiting
sliding-window
concurrency
Intermediate
7 steps
rust
use axum::{ body::Body, extract::State, http::{Request, StatusCode},
A sliding-window rate limiter in Axum
rate-limiting
middleware
sliding-window
Intermediate
10 steps
javascript
class DownloadTracker { constructor(totalBytes, { windowMs = 3000 } = {}) { this.totalBytes = totalBytes; this.windowMs = windowMs;
Estimating download speed with a sliding window
sliding-window
getters
rate-calculation
Intermediate
7 steps
typescript
interface Reading { timestamp: number; value: number; }
A weighted moving average in TypeScript
moving-average
sliding-window
smoothing
Intermediate
6 steps
typescript
type Bucket = { start: number; count: number }; export class SlidingWindowCounter { private readonly windowMs: number;
A sliding window rate counter in TypeScript
sliding-window
ring-buffer
rate-limiting
Intermediate
7 steps
javascript
class MovingAverage { constructor(windowSize) { if (!Number.isInteger(windowSize) || windowSize <= 0) { throw new RangeError('windowSize must be a positive integer');
A rolling average over a fixed window
circular-buffer
streaming
async-generators
Intermediate
7 steps
go
package metrics import ( "sync"
A thread-safe sliding-window average in Go
concurrency
sliding-window
running-average
Intermediate
8 steps
javascript
import { NextResponse } from 'next/server'; import { Redis } from '@upstash/redis'; const redis = Redis.fromEnv();
Sliding-window rate limiting in a Next.js route
rate-limiting
redis
sorted-set
Advanced
8 steps
php
<?php namespace App\RateLimiting;
Sliding-window rate limiting with Redis sorted sets
rate-limiting
redis
sorted-sets
Advanced
8 steps
ruby
class SyncContactsJob < ApplicationJob queue_as :external_api MAX_CONCURRENCY = 5
Rate-limited CRM sync in a Rails job
background-jobs
rate-limiting
redis
Advanced
9 steps
java
public class SlidingLogRateLimiter { private final int maxRequests; private final long windowMillis;
How a sliding-log rate limiter works
rate-limiting
concurrency
sliding-window
Advanced
8 steps
rust
use std::collections::VecDeque; pub struct RollingAverage { window: VecDeque<f64>,
A rolling average over a sliding window
sliding-window
running-sum
ring-buffer
Intermediate
6 steps
python
from django.core.cache import cache from rest_framework.throttling import SimpleRateThrottle
A login rate throttle in Django REST Framework
rate-limiting
caching
throttling
Intermediate
8 steps
ruby
class MetricSeries def initialize(readings, window: 5) @readings = readings @window = window
Rolling averages with each_cons in Ruby
sliding-window
enumerable
data-smoothing
Intermediate
7 steps
python
import time from collections import defaultdict from threading import Lock
Sliding-window login rate limiting in Flask
rate-limiting
sliding-window
thread-safety
Intermediate
7 steps
java
import java.util.ArrayDeque; import java.util.Deque; public final class RollingAverage {
A rolling average over a sliding window
sliding-window
running-sum
deque
Intermediate
7 steps
python
from collections import deque class RollingAverage:
A rolling average over a fixed window
sliding-window
running-sum
deque
Intermediate
7 steps
javascript
// Sliding window maximum using a monotonic decreasing deque. // Returns an array of the maximum value within each window of size k. function maxSlidingWindow(nums, k) { const result = [];
Sliding window maximum with a deque
sliding-window
monotonic-deque
amortized-analysis
Advanced
7 steps