Metadata-Version: 2.4
Name: pyvelo-http
Version: 0.1.0
Summary: High-performance HTTP client library based on AnyIO
License-Expression: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Framework :: AnyIO
Classifier: Typing :: Typed
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anyio>=4.10.0
Requires-Dist: h11>=0.16.0
Requires-Dist: h2>=4.2.0
Requires-Dist: multidict>=6.5.0
Requires-Dist: typing_extensions>=4.5; python_version < "3.13"
Requires-Dist: yarl>=1.20.1
Requires-Dist: wsproto>=1.2.0
Requires-Dist: orjson>=3.10.18
Provides-Extra: brotli
Requires-Dist: Brotli>=1.1.0; platform_python_implementation == "CPython" and extra == "brotli"
Requires-Dist: brotlicffi>=1.1.0; platform_python_implementation != "CPython" and extra == "brotli"
Provides-Extra: cbor
Requires-Dist: cbor2>=5.6.5; extra == "cbor"
Provides-Extra: json
Requires-Dist: orjson>=3.10.18; extra == "json"
Provides-Extra: opentelemetry
Requires-Dist: opentelemetry-api>=1.34.1; extra == "opentelemetry"
Provides-Extra: zstd
Requires-Dist: zstandard>=0.23.0; python_version < "3.14" and extra == "zstd"
Dynamic: license-file

# PyVelo

[![Build Status](https://github.com/utachicodes/pyvelo/actions/workflows/test.yml/badge.svg)](https://github.com/utachicodes/pyvelo/actions/workflows/test.yml)
[![Code Coverage](https://coveralls.io/repos/github/utachicodes/pyvelo/badge.svg?branch=master)](https://coveralls.io/github/utachicodes/pyvelo?branch=master)
[![Documentation Status](https://readthedocs.org/projects/pyvelo/badge/?version=latest)](https://pyvelo.readthedocs.io/en/latest/?badge=latest)
[![PyPI](https://img.shields.io/pypi/v/pyvelo.svg)](https://pypi.org/project/pyvelo/)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pyvelo.svg)](https://pypi.org/project/pyvelo/)

**PyVelo** is a next-generation, high-performance HTTP client library for Python, built on the robust [AnyIO](https://github.com/agronholm/anyio) framework. It is designed for speed, reliability, and ease of use in modern asynchronous applications.

---

## Features

- **High Performance**: Optimized for speed and low latency.
- **Async & Sync Support**: Works seamlessly with both synchronous and asynchronous code.
- **AnyIO Backed**: Compatible with `asyncio`, `trio`, and other AnyIO-supported event loops.
- **HTTP/1.1 & HTTP/2**: Full support for modern HTTP standards.
- **WebSocket Client**: Robust WebSocket implementation.
- **Server Sent Events (SSE)**: Easy-to-use SSE client.
- **Advanced Decompression**: Transparent support for deflate, gzip, zstd, and brotli.
- **ASGI Support**: Test ASGI 3.0 applications directly without overhead.

## Installation

Install PyVelo using pip:

```bash
pip install pyvelo
```

To include optional dependencies for extra performance (like `brotli` or `zstd` support):

```bash
pip install pyvelo[brotli,zstd]
```

## Quick Start
```python
import anyio
from pyvelo import AsyncClient

async def main():
    async with AsyncClient() as client:
        response = await client.get('https://httpbin.org/get')
        print(response.json())

anyio.run(main)
```

## Documentation

Full documentation is available at [pyvelo.readthedocs.io](https://pyvelo.readthedocs.io/).

## License

This project is licensed under the MIT License.
