Лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов и API на Python.
ross/requests-futures
Небольшое дополнение к библиотеке Python requests для асинхронной отправки HTTP-запросов с помощью concurrent.futures.
- Звёзды
- 2,222
- Форки
- 158
- Открытые issues
- 1
- Последний коммит
- 16 дней назад
Что это?
requests-futures добавляет асинхронный интерфейс к популярной библиотеке Python requests. Вместо того чтобы ждать завершения каждого вызова, FuturesSession возвращает объекты Future: запросы выполняются в фоне, а когда нужен ответ, можно вызвать result(). В остальном API совпадает с requests.Session, но исключения возникают при вызове result(), а не в момент отправки запроса.
По умолчанию сессия использует ThreadPoolExecutor с 8 рабочими потоками. Вместо него можно передать ProcessPoolExecutor для параллельного выполнения в отдельных процессах. При закрытии сессии как контекстного менеджера отменяются запросы в очереди, выполнение которых ещё не началось. К объектам Future можно прикреплять дополнительные данные. Вместо устаревшего background_callback библиотека предоставляет hooks.
По умолчанию исполнитель использует один requests.Session на все рабочие потоки. Поскольку Session не потокобезопасен, при изменении общих cookies или заголовков во время выполнения запросов нужно соблюдать осторожность. Требуется Python версии 3.10 или новее.
Ключевые возможности
- 01Возвращает объекты Future через знакомый API requests.Session.
- 02По умолчанию использует ThreadPoolExecutor с 8 рабочими потоками и поддерживает ProcessPoolExecutor.
- 03При закрытии сессии отменяет запросы в очереди, выполнение которых ещё не началось.
- 04Позволяет прикреплять к объектам Future пользовательские данные, чтобы отслеживать, какой запрос к ним относится.
- 05Поддерживает hooks вместо устаревшего background_callback.
Сценарии использования
- Параллельная загрузка множества независимых URL из скрипта на Python.
- Добавление фоновых HTTP-вызовов в существующий код на requests с минимальными изменениями.
- Выполнение больших пакетов запросов в случаях, когда для каждого запроса важно снизить потребление памяти и поэтому нужен пул процессов.
Быстрый старт
- 1
Установите пакет с помощью pip
pip install requests-futures - 2
Создайте FuturesSession и отправьте запросы; вызовите result() для каждого future, чтобы получить ответ
Что важно знать
- Требуется Python 3.10 или новее.
- Исполнитель по умолчанию использует один requests.Session в нескольких потоках, хотя он не является потокобезопасным.
- Лицензия не указана явно в метаданных проекта.
Темы
Частые вопросы
- Что такое requests-futures?
- Небольшое дополнение к библиотеке Python requests для асинхронной отправки HTTP-запросов с помощью concurrent.futures. requests-futures добавляет асинхронный интерфейс к популярной библиотеке Python requests. Вместо того чтобы ждать завершения каждого вызова, FuturesSession возвращает объекты Future: запросы выполняются в фоне, а когда нужен ответ, можно вызвать result(). В остальном API совпадает с requests.Session, но исключения возникают при вызове result(), а не в момент отправки запроса.
- requests-futures можно использовать бесплатно? Какая у него лицензия?
- requests-futures распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- requests-futures всё ещё поддерживается?
- Активно поддерживается. Последний коммит в requests-futures — 5 окт. 2026 г..
- Для чего можно использовать requests-futures?
- Параллельная загрузка множества независимых URL из скрипта на Python. Добавление фоновых HTTP-вызовов в существующий код на requests с минимальными изменениями. Выполнение больших пакетов запросов в случаях, когда для каждого запроса важно снизить потребление памяти и поэтому нужен пул процессов.
- Как установить requests-futures?
- Установите пакет с помощью pip: pip install requests-futures Создайте FuturesSession и отправьте запросы; вызовите result() для каждого future, чтобы получить ответ
- Где скачать requests-futures?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ross/requests-futures
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Интерактивный прокси для перехвата HTTP-трафика с поддержкой TLS и интерфейсами для консоли, командной строки и браузера.
MCP-сервер с 39 инструментами для AI-ассистентов: рыночные данные, теханализ, скринеры, бэктестинг и сентимент по криптовалютам, акциям, форексу и фьючерсам.
Быстрый микрофреймворк на C++ в стиле Flask для создания HTTP- и WebSocket-сервисов: header-only и простой в использовании.
Python-фреймворк для создания AI-агентов, взаимодействующих с клиентами и последовательно соблюдающих бизнес-правила, рекомендации и процедуры за счёт отбора релевантного контекста для LLM на каждом шаге.
Фреймворк на Python для создания веб-интерфейсов и небольших приложений без HTML, CSS и JavaScript.