urllib.urequest module for MicroPython
Project description
HTTP clients in micropython-lib
===============================
micropython-lib currently offers 4 HTTP client modules:
* ``urllib.urequest``
* ``urequests``
* ``uurequests``
* ``uaiohttpclient``
This README is intended to describe differences among them and help
to choose the right module for a particular use.
* ``urllib.urequest`` implements a subset of API CPython standard library
module urllib.request. This module is intended to be the most minimal
of all three and provide an efficient, stream-based API. It doesn't
support automatic redirects or chunked transfer encoding.
* ``urequests`` implements a subset of API of the popular 3rd-party package
``requests``. ``requests`` brags itself as "HTTP for Humans", which
means that its API is not ideal, and implementation is inefficient.
``urequests`` implements only a subset of it, and tries to mend some
poor defaults of the prototype module. Still, it's less efficient
than ``urllib.urequest``. Redirects are handled, but not chunked
transfer encoding.
* ``uurequests`` is capture of the version 0.8 of ``urequests``, before
opening the door for adding more features to the latter. It's provided
for very small systems which still would like requests-like API.
* ``uaiohttpclient`` is an HTTP client for ``uasyncio`` module. It's
the only of all 3 which supports chunked transfer encoding.
Thus, the selection guide:
* Whenever possible, use ``urllib.urequest``.
* If you write a once-off, throw-away app where you don't care about
efficiency, you can use ``urequests``.
* If you wrote that for very small system and above didn't work, can
give ``uurequests`` a try.
* If you devel an async app, use ``uaiohttpclient``.
* If you need support for more HTTP protocol features, use
``uaiohttpclient`` and write an async app.
Future of the modules:
* ``urllib.urequest`` is intended to stay minimal and unlikely will get more
features (it's suitable for ~80% of possible usage scenarios).
* ``urequests`` has bloat in its DNA, so likely will slowly grow more features
to match the upstream module, which will make it even less suitable for
low-memory targets.
* ``uurequests`` was snapshotted to address concern of such low-memory systems
support. It's static, and only critical bugfixes are intended to be applied.
*``uaiohttpclient`` may get updated as needed.
===============================
micropython-lib currently offers 4 HTTP client modules:
* ``urllib.urequest``
* ``urequests``
* ``uurequests``
* ``uaiohttpclient``
This README is intended to describe differences among them and help
to choose the right module for a particular use.
* ``urllib.urequest`` implements a subset of API CPython standard library
module urllib.request. This module is intended to be the most minimal
of all three and provide an efficient, stream-based API. It doesn't
support automatic redirects or chunked transfer encoding.
* ``urequests`` implements a subset of API of the popular 3rd-party package
``requests``. ``requests`` brags itself as "HTTP for Humans", which
means that its API is not ideal, and implementation is inefficient.
``urequests`` implements only a subset of it, and tries to mend some
poor defaults of the prototype module. Still, it's less efficient
than ``urllib.urequest``. Redirects are handled, but not chunked
transfer encoding.
* ``uurequests`` is capture of the version 0.8 of ``urequests``, before
opening the door for adding more features to the latter. It's provided
for very small systems which still would like requests-like API.
* ``uaiohttpclient`` is an HTTP client for ``uasyncio`` module. It's
the only of all 3 which supports chunked transfer encoding.
Thus, the selection guide:
* Whenever possible, use ``urllib.urequest``.
* If you write a once-off, throw-away app where you don't care about
efficiency, you can use ``urequests``.
* If you wrote that for very small system and above didn't work, can
give ``uurequests`` a try.
* If you devel an async app, use ``uaiohttpclient``.
* If you need support for more HTTP protocol features, use
``uaiohttpclient`` and write an async app.
Future of the modules:
* ``urllib.urequest`` is intended to stay minimal and unlikely will get more
features (it's suitable for ~80% of possible usage scenarios).
* ``urequests`` has bloat in its DNA, so likely will slowly grow more features
to match the upstream module, which will make it even less suitable for
low-memory targets.
* ``uurequests`` was snapshotted to address concern of such low-memory systems
support. It's static, and only critical bugfixes are intended to be applied.
*``uaiohttpclient`` may get updated as needed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for micropython-urllib.urequest-0.6.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69e24791c40f3a0a93565c71d38470488c8ffecb27261ad08e0a83fdd79d1808 |
|
MD5 | 795a641869f84a6b09dad9386e0a6ce2 |
|
BLAKE2b-256 | d2b94943f9fc6f60a8f7e0a2ad2a8c96973a94dda20d85e225c0b0348ba4c357 |