Popularity
2.3
Stable
Activity
0.0
Stable
26
4
5

Programming language: Go
License: MIT License
Tags: Utilities    
Latest version: v3.0.0

rerate alternatives and similar packages

Based on the "Utilities" category.
Alternatively, view rerate alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of rerate or a related project?

Add another 'Utilities' Package

README

rerate

Build Status GoDoc Go Report Card Coverage Status

rerate is a redis-based ratecounter and ratelimiter

  • Dead simple api
  • With redis as backend, multiple rate counters/limiters can work as a cluster
  • Count/Limit requests any period, 2 day, 1 hour, 5 minute or 2 second, it's up to you
  • Recording requests as a histotram, which can be used to visualize or monitor
  • Limit requests from single ip, userid, applicationid, or any other unique identifier

Tutorial

package main

import (
    "github.com/abo/rerate"
)

...

func main() {
    // redigo buckets
    pool := newRedisPool("localhost:6379", "")
    buckets := rerate.NewRedigoBuckets(pool)

    // OR redis buckets
    // client := redis.NewClient(&redis.Options{
    //   Addr:     "localhost:6379",
    //   Password: "",
    //   DB:       0,
    // })
    // buckets := rerate.NewRedisBuckets(client)

    // Counter
    counter := rerate.NewCounter(buckets, "rl:test", 10 * time.Minute, 15 * time.Second)
    counter.Inc("click")
    c, err := counter.Count("click")

    // Limiter
    limiter := rerate.NewLimiter(buckets, "rl:test", 1 * time.Hour, 15 * time.Minute, 100)
    limiter.Inc("114.255.86.200")
    rem, err := limiter.Remaining("114.255.86.200")
    exceed, err := limiter.Exceeded("114.255.86.200")
}

Installation

Install rerate using the "go get" command:

go get github.com/abo/rerate

Documentation

Sample - Sparkline

    cd cmd/sparkline
    npm install webpack -g
    npm install
    webpack && go run main.go

Open http://localhost:8080 in Browser, And then move mouse.

Contributing

WELCOME

License

rerate is available under the The MIT License (MIT).


*Note that all licence references and agreements mentioned in the rerate README section above are relevant to that project's source code only.