Initial commit

This commit is contained in:
2025-08-01 00:15:34 +01:00
commit 54601b1993
115 changed files with 28375 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
package main
import (
"net/http"
"golang.org/x/time/rate"
)
// RateLimiter middleware limits requests per IP
func RateLimiter(rps float64, burst int) func(http.Handler) http.Handler {
limiter := rate.NewLimiter(rate.Limit(rps), burst)
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if !limiter.Allow() {
http.Error(w, http.StatusText(http.StatusTooManyRequests), http.StatusTooManyRequests)
return
}
next.ServeHTTP(w, req)
})
}
}