Skip to main content

pycopy-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 the API of CPython standard library module urllib.request. This module is intended to be the most minimal of all modules listed 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 the above didn’t work, can give uurequests a try.

  • If you develop 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 small/important bugfixes are intended to be applied.

  • uaiohttpclient may get updated as needed.

Release files for pycopy-urequests 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycopy-urequests 1.0
File Size Uploaded
pycopy-urequests-1.0.tar.gz 3.0 kB Details

Release files / pycopy-urequests-1.0.tar.gz

Download URL pycopy-urequests-1.0.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d65ea81b758b4cf7ec3b0a3d3c0fc7168c7993be1fa93c3d63c4de7e65fc32b1
BLAKE2b-256 checksum
How to use checksums
f8aea2182af5740fef1893c2fcad0479d56d20853058835a785fe46644555816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.8

Release history Release notifications | RSS feed

This release

1.0 This release

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page