File: token-bucket.cabal

package info (click to toggle)
haskell-token-bucket 0.1.0.1-11
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 132 kB
  • sloc: haskell: 132; ansic: 11; makefile: 9
file content (52 lines) | stat: -rw-r--r-- 1,899 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
cabal-version:       >=1.10
name:                token-bucket
version:             0.1.0.1
x-revision: 5

synopsis:            Rate limiter using lazy bucket algorithm
homepage:            https://github.com/hvr/token-bucket
bug-reports:         https://github.com/hvr/token-bucket/issues
license:             GPL-3
license-file:        LICENSE
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
category:            Concurrency
build-type:          Simple
description:
  This package provides a variant of a [Token Bucket](https://en.wikipedia.org/wiki/Token_bucket)
  or [Leaky Bucket](https://en.wikipedia.org/wiki/Leaky_bucket) rate-limiting algorithm optimised for low overhead.
  .
  The rate-limiting variant implemented by this package is heavily inspired by the algorithm described in
  <https://web.archive.org/web/20120808023806/http://ksdlck.com/post/17418037348/rate-limiting-at-webscale-lazy-leaky-buckets "Rate Limiting at Webscale: Lazy Leaky Buckets">.

extra-source-files:    changelog.md

source-repository head
  type:     git
  location: https://github.com/hvr/token-bucket.git

flag use-cbits
  description: Use optimized getPOSIXTime implementation (faster by roughly one order of magnitude)
  manual: True
  default: True

library
  default-language:    Haskell2010
  build-depends:       base >=4.6 && <4.14
  hs-source-dirs:      src
  if flag(use-cbits)
    cpp-options:       -DUSE_CBITS
    c-sources:         cbits/get_posix_time.c
  else
    build-depends:     time >=1.4 && <1.10
  ghc-options: -Wall
  exposed-modules:     Control.Concurrent.TokenBucket

test-suite test-tb
  default-language:    Haskell2010
  type:                exitcode-stdio-1.0
  build-depends:       base
                     , time >=1.4 && <1.10
                     , token-bucket
  main-is:             test-tb.hs
  ghc-options:         -Wall -threaded -rtsopts