Код
#новости

Mureq — быстрая, безопасная и простая замена python-requests

Это однофайловая библиотека без зависимостей, которая является хорошей альтернативой для небольших приложений.

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

Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие.
Каталог возможностей
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована