Metadata-Version: 2.4
Name: pyqwest
Version: 0.12.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Rust
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Dist: opentelemetry-api>=1.39.1
License-File: LICENSE
Summary: A modern, high-performance HTTP client for Python and Rust.
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/curioswitch/pyqwest/releases
Project-URL: Homepage, https://github.com/curioswitch/pyqwest
Project-URL: Issues, https://github.com/curioswitch/pyqwest/issues
Project-URL: Repository, https://github.com/curioswitch/pyqwest.git

# pyqwest

[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI](https://github.com/curioswitch/pyqwest/actions/workflows/ci.yaml/badge.svg)](https://github.com/curioswitch/pyqwest/actions/workflows/ci.yaml)
[![codecov](https://codecov.io/github/curioswitch/pyqwest/graph/badge.svg)](https://codecov.io/github/curioswitch/pyqwest)

pyqwest is a Python HTTP client supporting modern HTTP features, based on the Rust library [reqwest](https://github.com/seanmonstar/reqwest).
It does not reinvent any features of HTTP or sockets, delegating to the excellent reqwest, which uses hyper, for all core functionality
while presenting a familiar Pythonic API.

## Features

- All features of HTTP, including bidirectional streaming, trailers, and HTTP/3
- Async and sync clients
- The stability and performance of the Rust HTTP client stack
- A fully-typed, Pythonic API - no runtime-checked union types

## Installation

pyqwest is published to PyPI and can be installed as normal. We publish wheels for a wide variety of
platforms, but if you happen to be using one without prebuilt wheels, it will be built automatically
if you have Rust installed.

```bash
uv add pyqwest # or pip install
```

## Usage

pyqwest provides the classes `Client` and `SyncClient` for async and sync applications respectively.
These are ready to use to issue requests, or you can create and pass `HTTPTransport` or `SyncHTTPTransport`
to configure settings like TLS certificates.

```python
client = pyqwest.Client()

response = await client.get("https://curioswitch.org")
print(len(response.content))
```

See the [API reference](https://curioswitch.github.io/pyqwest/api/) for all the APIs available.

