Mureq — быстрая, безопасная и простая замена python-requests
2026-02-21 03:25 Diff

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Mureq позволяет отправлять HTTP-запросы. Всё происходит автоматически — теперь не нужно вручную создавать очереди строк в URL, а также формировать и кодировать PUT/POST-данные.

>>> mureq.get('https://clients3.google.com/generate_204') Response(status_code=204) >>> response = _; response.status_code 204 >>> response.headers['date'] 'Sun, 26 Dec 2021 01:56:04 GMT' >>> response.body b'' >>> params={'snap': 'certbot', 'interface': 'content'} >>> response = mureq.get('http://snapd/v2/connections', params=params, unix_socket='/run/snapd.socket') >>> response.status_code 200 >>> response.headers['Content-type'] 'application/json' >>> response.body b'{"type":"sync","status-code":200,"status":"OK","result":{"established":[],"plugs":[],"slots":[]}}'

Разработчик mureq создал простую и удобную библиотеку, которая является альтернативой популярной python-requests. В первую очередь он ориентировался на то, чтоб добиться производительности, безопасности и простоты.

Python-requests использует очень много памяти — по большей степени из-за таких зависимостей, как chardet, которые нужны не каждому программисту. Mureq не использует внешние библиотеки вовсе.

Ниже приведены сравнения использования памяти python-requests и mureq для Python 3.9.7 на Ubuntu 21.10 для amd64:

user@impish:~$ python3 -c "import os; os.system('grep VmRSS /proc/' + str(os.getpid()) + '/status')" VmRSS: 7404 kB user@impish:~$ python3 -c "import os, mureq; os.system('grep VmRSS /proc/' + str(os.getpid()) + '/status')" VmRSS: 13304 kB user@impish:~$ python3 -c "import os, mureq; mureq.get('https://www.google.com'); os.system('grep VmRSS /proc/' + str(os.getpid()) + '/status')" VmRSS: 15872 kB user@impish:~$ python3 -c "import os, requests; os.system('grep VmRSS /proc/' + str(os.getpid()) + '/status')" VmRSS: 21488 kB user@impish:~$ python3 -c "import os, requests; requests.get('https://www.google.com'); os.system('grep VmRSS /proc/' + str(os.getpid()) + '/status')" VmRSS: 24352 kB

Python-requests использует десятки тысяч строк стороннего кода, который не может быть адекватно проанализирован на уязвимости. Обычно Python-приложения с внешними зависимостями наиболее подвержены хакерским атакам. Mureq содержит всего 350 строк кода и может быть проверен прямо во время разработки.

Кроме этого, mureq — это простое дополнение для любой экосистемы. Библиотека не усложняет разработку и отладку приложений и может легко изменяться под конкретные условия.

Подробнее познакомиться с mureq можно на официальной Github-странице библиотеки.

Вот как на это отреагировали пользователи Reddit:

“Кто-нибудь думал о том, чтобы добавить эту библиотеку под ‘капот’ python-requests? Как, например, альтернативный вариант?”

Скриншот: Reddit

“README выглядит очень антагонистично. Но в любом случае звучит довольно круто!”

Скриншот: Reddit

“Это очень круто! Попробую, как только будет время. Говорить про полноценную замену python-requests — это, конечно, слишком. Но для большинства скриптов и небольших приложений — самое то”.

Скриншот: Reddit
Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу