Metadata-Version: 2.4
Name: aioflux
Version: 0.1.0
Summary: High-performance async rate limiting and queue management
Home-page: https://github.com/Asmin963/aioflux
Author: zlexdev
License: MIT
Project-URL: Homepage, https://github.com/Asmin963/aioflux
Project-URL: Documentation, https://aioflux.readthedocs.io
Project-URL: Repository, https://github.com/Asmin963/aioflux
Project-URL: Issues, https://github.com/Asmin963/aioflux/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
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: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: redis>=2.0.0
Requires-Dist: aiohttp>=3.8.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Dynamic: license-file
Dynamic: requires-python

# aioflux

Асинхронная библиотека для управления рейт-лимитами и очередями

## Возможности

- Рейт-лимитинг с 5 алгоритмами
- Очереди с приоритетами и батчингом
- Декораторы
- Поддержка Redis
- Сбор метрик и мониторинг
- Circuit breaker паттерн

## Производительность

Token Bucket: 1M ops/sec в памяти, 50K ops/sec через Redis  
Queue throughput: 100K tasks/sec  
Latency: <1ms p99

## Установка

```bash
pip install -r requirements.txt
pip install -e .
```

## Быстрый старт

```python
from aioflux import RateLimiter, rate_limit

# Простой лимитер
limiter = RateLimiter.token_bucket(rate=100, per=60)
if await limiter.acquire("user_123"):
    await process_request()

# Через декоратор
@rate_limit(rate=100, per=60)
async def api_call():
    pass
```

## Документация

См. директорию `docs/` для подробной документации:
- `docs/README.md` - Обзор возможностей
- `docs/API.md` - Технический API reference

## Примеры

В директории `examples/` находятся примеры:
- `01_basic_rate_limiting.py` - Базовые примеры
- `02_queues.py` - Очереди
- `03_advanced.py` - Продвинутые сценарии
- `05_real_world.py` - Реальные сценарии

## Тесты

```bash
python tests/test_basic.py
```

## Лицензия

MIT
