vutran1710/PyrateLimiter

PyrateLimiter V3 release

Opened this issue · 0 comments

Improvements & features

Phase I

  • Much improved performance (better algorithm, better rate observations, very fast on consuming data)
  • Better software design: much simpler, more extensible and easier to implement custom/extra logic without hacking around
  • Out-of-the-box workable with both async & sync methods
  • Decorator ready (both async & sync)
  • Delay processing
  • RedisAsyncBucket
  • Multithreaded test
  • Creating bucket at run time
  • Bucket leak background-task
  • Docs
  • Changelog
  • Release

Phase II

  • Dynamic changing rate-limit for bucket during run time
  • External rates store
  • FileLock for SQLite
  • Multi-process testing
  • DynamoDB

Phase III

  • Context
  • Negative weight

Performance

Inserting 10k items to a single bucket, using different backends - running synchronouly with a for-loop

# InMemoryBucket
Performance test: insert 10k items 0.17364001274108887(secs)

# RedisBucket
Performance test: insert 10k items 5.8455188274383545(secs)

# SQLiteBucket
Performance test: insert 10k items 3.9313011169433594(secs)