feat!: Add fixedWindow, tokenBucket, and slidingWindow primitives #171
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
feat!: Rework primitives to build rules with config & request details
This reworks Primitives to be a class that can construct a Rule based on a context + request details. This is due to including the
requested
token count on RateLimitRule, but it being passed as extra data toprotect()
.I think this API is good, but after completing it, I'm wondering if it is actually incorrect for the
requested
field to be attached to the RateLimitRule in the protobuf. Perhaps it should just be stuffed into ourextra
field on the request. I want to think about it some more over the weekend, but this is a start.