feat: add quota limiter and quota API (#107)
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
package registry
|
||||
|
||||
import "github.com/go-gost/x/limiter/quota"
|
||||
|
||||
// quotaLimiterRegistry holds shared quota limiters; Unregister closes them.
|
||||
type quotaLimiterRegistry struct {
|
||||
registry[*quota.Limiter]
|
||||
}
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
"github.com/go-gost/core/router"
|
||||
"github.com/go-gost/core/sd"
|
||||
"github.com/go-gost/core/service"
|
||||
"github.com/go-gost/x/limiter/quota"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -49,6 +50,7 @@ var (
|
||||
trafficLimiterReg reg.Registry[traffic.TrafficLimiter] = new(trafficLimiterRegistry)
|
||||
connLimiterReg reg.Registry[conn.ConnLimiter] = new(connLimiterRegistry)
|
||||
rateLimiterReg reg.Registry[rate.RateLimiter] = new(rateLimiterRegistry)
|
||||
quotaLimiterReg reg.Registry[*quota.Limiter] = new(quotaLimiterRegistry)
|
||||
|
||||
ingressReg reg.Registry[ingress.Ingress] = new(ingressRegistry)
|
||||
routerReg reg.Registry[router.Router] = new(routerRegistry)
|
||||
@@ -200,6 +202,11 @@ func RateLimiterRegistry() reg.Registry[rate.RateLimiter] {
|
||||
return rateLimiterReg
|
||||
}
|
||||
|
||||
// QuotaLimiterRegistry returns the global registry of quota limiter instances.
|
||||
func QuotaLimiterRegistry() reg.Registry[*quota.Limiter] {
|
||||
return quotaLimiterReg
|
||||
}
|
||||
|
||||
// IngressRegistry returns the global registry of ingress instances.
|
||||
func IngressRegistry() reg.Registry[ingress.Ingress] {
|
||||
return ingressReg
|
||||
|
||||
Reference in New Issue
Block a user