SkillAgentSearch skills...

Slidingwindow

Golang implementation of Sliding Window Algorithm for distributed rate limiting.

Install / Use

/learn @RussellLuo/Slidingwindow
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

slidingwindow

Golang implementation of Sliding Window Algorithm for distributed rate limiting.

Installation

$ go get -u github.com/RussellLuo/slidingwindow

Design

slidingwindow is an implementation of the scalable rate limiting algorithm used by Kong.

Suppose we have a limiter that permits 100 events per minute, and now the time comes at the "75s" point, then the internal windows will be as below:

slidingwindow

In this situation, the limiter has permitted 12 events during the current window, which started 15 seconds ago, and 86 events during the entire previous window. Then the count approximation during the sliding window can be calculated like this:

count = 86 * ((60-15)/60) + 12
      = 86 * 0.75 + 12
      = 76.5 events

Test Utility

prom_reports

For details, see testutil.

Documentation

For usage and examples see the Godoc.

License

MIT

View on GitHub
GitHub Stars408
CategoryDevelopment
Updated14d ago
Forks41

Languages

Go

Security Score

100/100

Audited on Mar 15, 2026

No findings