Metadata-Version: 2.1
Name: rate-control
Version: 3.0.0
Summary: Versatile rate controlling in Python
Home-page: https://github.com/corentin-regent/rate-control
License: MIT
Keywords: async,rate limit,schedule,throttle,token bucket
Author: Corentin Régent
Author-email: corentin.regent.pro@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AnyIO
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Dist: anyio (>=4.0.0,<5.0.0)
Requires-Dist: typing_extensions (>=4.4.0,<5.0.0) ; python_version < "3.12"
Project-URL: Changelog, https://rate-control.readthedocs.io/en/latest/changelog.html
Project-URL: Documentation, https://rate-control.readthedocs.io/
Project-URL: Repository, https://github.com/corentin-regent/rate-control
Description-Content-Type: text/x-rst

============
Rate Control
============

*Versatile rate controlling in Python*

======= =========================================================
CI/CD   |release| |ci| |docs|
Package |python-version| |package-version| |license|
Quality |coverage| |quality-gate| |maintainability| |reliability|
Meta    |type-check| |code-style|
======= =========================================================

Documentation
=============

Full documention can be found at https://rate-control.readthedocs.io/

Key Features
============

* `Rate limiting <https://rate-control.readthedocs.io/en/latest/quickstart.html#basic-usage>`_
* `Scheduling requests <https://rate-control.readthedocs.io/en/latest/scheduling.html>`_
* `Request synchronization <https://rate-control.readthedocs.io/en/latest/synchronization.html>`_
* `Request prioritization <https://rate-control.readthedocs.io/en/latest/scheduling.html#request-prioritization>`_
* `Chaining buckets <https://rate-control.readthedocs.io/en/latest/bucket-groups.html>`_
* Support for both asyncio_ and Trio_, through AnyIO_

.. _AnyIO: https://github.com/agronholm/anyio
.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _Trio: https://github.com/python-trio/trio

Contributing
============

Contributions are very welcome. Please read `CONTRIBUTING </CONTRIBUTING.rst>`_ for details.


.. CI/CD:

.. |release| image:: https://github.com/corentin-regent/rate-control/actions/workflows/release.yml/badge.svg
  :alt: Release
  :target: https://github.com/corentin-regent/rate-control/actions/workflows/release.yml

.. |ci| image:: https://github.com/corentin-regent/rate-control/actions/workflows/ci.yml/badge.svg
  :alt: Continuous Integration
  :target: https://github.com/corentin-regent/rate-control/actions/workflows/ci.yml

.. |docs| image:: https://readthedocs.org/projects/rate-control/badge/?version=latest
  :alt: Documentation Status
  :target: https://rate-control.readthedocs.io/

.. Package:

.. |python-version| image:: https://img.shields.io/pypi/pyversions/rate-control?logo=python
  :alt: Python Versions

.. |package-version| image:: https://img.shields.io/pypi/v/rate-control?logo=python
  :alt: Package Version
  :target: https://pypi.org/project/rate-control/

.. |license| image:: https://img.shields.io/pypi/l/rate-control?logo=unlicense
  :alt: MIT License
  :target: https://rate-control.readthedocs.io/en/latest/license.html

.. Quality:

.. |coverage| image:: https://img.shields.io/sonar/coverage/corentin-regent_rate-control?server=https%3A%2F%2Fsonarcloud.io&logo=sonarcloud
  :alt: Code Coverage
  :target: https://sonarcloud.io/summary/new_code?id=corentin-regent_rate-control

.. |quality-gate| image:: https://sonarcloud.io/api/project_badges/measure?project=corentin-regent_rate-control&metric=alert_status
  :alt: Quality Gate
  :target: https://sonarcloud.io/summary/new_code?id=corentin-regent_rate-control

.. |maintainability| image:: https://sonarcloud.io/api/project_badges/measure?project=corentin-regent_rate-control&metric=sqale_rating
  :alt: Maintainability Rating
  :target: https://sonarcloud.io/summary/new_code?id=corentin-regent_rate-control

.. |reliability| image:: https://sonarcloud.io/api/project_badges/measure?project=corentin-regent_rate-control&metric=reliability_rating
  :alt: Reliability Rating
  :target: https://sonarcloud.io/summary/new_code?id=corentin-regent_rate-control

.. Meta:

.. |type-check| image:: https://www.mypy-lang.org/static/mypy_badge.svg
  :alt: Type Checked
  :target: https://mypy-lang.org/

.. |code-style| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
  :alt: Code Style
  :target: https://github.com/astral-sh/ruff

