Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rob-blackbourn/bareclient
A simple asyncio http client https://rob-blackbourn.github.io/bareClient/
https://github.com/rob-blackbourn/bareclient
asyncio bareasgi client http http-client http2 python python-3
Last synced: 23 days ago
JSON representation
A simple asyncio http client https://rob-blackbourn.github.io/bareClient/
- Host: GitHub
- URL: https://github.com/rob-blackbourn/bareclient
- Owner: rob-blackbourn
- License: apache-2.0
- Created: 2019-03-22T07:20:04.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-14T09:44:32.000Z (10 months ago)
- Last Synced: 2024-12-15T22:50:15.148Z (26 days ago)
- Topics: asyncio, bareasgi, client, http, http-client, http2, python, python-3
- Language: Python
- Homepage:
- Size: 1.41 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bareClient
An asyncio HTTP Python 3.11 client package supporting HTTP versions 1.0, 1.1
and 2 (read the [docs](https://rob-blackbourn.github.io/bareClient/)).This is the client companion to the ASGI server side web framework
[bareASGI](https://github.com/rob-blackbourn/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.
```bash
pip install bareclient
```This is a Python3.11 and later package.
It has dependencies on:
- [bareUtils](https://github.com/rob-blackbourn/bareUtils)
- [h11](https://github.com/python-hyper/h11)
- [h2](https://github.com/python-hyper/hyper-h2)## Usage
The basic usage is to create an `HttpClient`.
```python
import asyncio
from typing import List, Optional
from bareclient import HttpClientasync 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'))
```