A lightweight asyncio HTTP client


Keywords
asyncio, bareasgi, client, http, http-client, http2, python, python-3
License
Apache-2.0
Install
pip install bareclient==6.0.0a1

Documentation

bareClient

An asyncio HTTP Python 3.11 client package supporting HTTP versions 1.0, 1.1 and 2 (read the docs).

This is the client companion to the ASGI server side web framework bareASGI and follows the same "bare" approach. It provides only the essential functionality and makes little attempt to provide any helpful features which might do unnecessary work.

This package is suitable for:

  • A foundation for async HTTP/2 clients,
  • Async REST client API's,
  • Containers requiring a small image size,
  • Integration with ASGI web servers requiring async HTTP client access.

Features

The client has the following notable features:

  • Lightweight
  • Uses asyncio
  • Supports HTTP versions 1.0, 1.1, 2
  • Supports middleware
  • Handles proxies

Installation

The package can be installed with pip.

pip install bareclient

This is a Python3.11 and later package.

It has dependencies on:

Usage

The basic usage is to create an HttpClient.

import asyncio
from typing import List, Optional
from bareclient import HttpClient

async def main(url: str) -> None:
    async with HttpClient(url) as response:
        if response.ok and response.more_body:
            async for part in response.body:
                print(part)

asyncio.run(main('https://docs.python.org/3/library/cgi.html'))