Python HTTP library 'urllib3' now works in the browser

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • urllib3

    urllib3 is a user-friendly HTTP client library for Python

    Oh wow, thanks for this story! Would love to hear more if you have time :) Good luck with testing it out.

    Note that we found an issue w/ emitting an InsecureRequestWarning by default. The request is perfectly secure, it's just we aren't telling the ConnectionPool that information (see:

  • emscripten

    Emscripten: An LLVM-to-WebAssembly Compiler

    Browsers limit the ability for these platforms to use raw sockets, there simply is no API for it. The best that can be done /today/ is to use WebSockets, which are not the same thing any can't be used for HTTP requests without the server expecting a WebSocket connection:

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • pyscript

    Try PyScript: Examples: Community:

    PyScript maintainer here - I'd love to hear more about this application! Either here, or over on our Discord (invite link is on the GitHub Page [1]).


  • pyodide-http

    Provides patches for widely used http libraries to make them work in Pyodide environments like JupyterLite

    This a a great example of good work getting 'upstreamed.' The go-to solution for using requests and urllib3 in the browser had been Koen Vossen's 'pyodide-http' package, which you'd install in PyScript/Pyodide and then call 'pyodide_http.patch_all()`. It monkey-patched requests and urllib3 to use the browser API's. [1]

    Then 'pyodide-http' got adopted into the Pyodide-included packages[2], so you didn't have to specify it for install, just import it and run patch_all().

    And now a similar technique has been incorporated directly into urllib3. (Not a direct port - as far as I know Joe Marshall did a full reimplementation so that urllib3's API's would be maintained as much as possible). [2]

    Very cool.


  • excel-in-python

    A spreadsheet implemented in Python, using PyScript

    Work keeping an eye on Chris Laffra's work in this area - he did a Python in Excel demo [1] a few months back, and while sheets aren't in his ltk framework [2] yet, the work he's done on reactivity-in-python-on-the-web there is really promising.



    Asynchronous HTTP client/server framework for asyncio and Python

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts