Reqivo
Modern, async-first HTTP client for Python · Zero external dependencies · Built on standard library
🚀 TL;DR
from reqivo import AsyncSession
import asyncio
async def main():
async with AsyncSession() as session:
response = await session.get('https://api.github.com/users/octocat')
print(response.json())
asyncio.run(main())
✨ What is Reqivo?
Reqivo is a modern, async-first HTTP client library built entirely on Python's standard library. No external dependencies, pure performance.
Philosophy
Reqivo is not a requests replacement. It's a modern HTTP foundation.
Reqivo exists to bridge the gap between low-level socket/ssl usage and the need for a fast, modern HTTP client:
- Using only the standard library (Python 3.9+)
- Providing an async-first API with sync support
- Supporting modern protocols (HTTP/1.1, HTTP/2, WebSockets)
- Maintaining zero external dependencies for maximum portability
Reqivo is for:
- Developers who want async HTTP without heavyweight dependencies
- Teams building cloud-native applications
- Projects where dependencies matter (embedded systems, security-critical apps)
- Anyone seeking performance and simplicity
📦 Installation
pip install reqivo
🧪 Basic Example
Sync Usage
from reqivo import Session
session = Session()
response = session.get('https://api.example.com/data')
print(response.status) # 200
print(response.json()) # {"key": "value"}
Async Usage
import asyncio
from reqivo import AsyncSession
async def fetch():
async with AsyncSession() as session:
response = await session.get('https://api.example.com/data')
return response.json()
asyncio.run(fetch())
WebSocket Support
from reqivo import WebSocket
ws = WebSocket('wss://echo.websocket.org')
ws.connect()
ws.send('Hello WebSocket!')
message = ws.receive()
ws.close()
🔍 Key Features
- ✅ Zero external dependencies: Pure Python (Python 3.9+)
- ✅ Async-first design: Built for modern async/await workflows
- ✅ Sync support: Also works in synchronous code
- ✅ HTTP/1.1 support: Full protocol implementation
- ✅ WebSocket support: Sync and async WebSocket clients
- ✅ Connection pooling: Automatic connection reuse for performance
- ✅ Type hints: Fully typed following PEP 561
- ✅ Memory efficient: Optimized with
__slots__where beneficial - ✅ Comprehensive testing: 97%+ test coverage
Roadmap Features
- 🔄 HTTP/2 support (Planned v0.5.0)
- 🔄 HTTP/3/QUIC (Research phase)
- 🔄 Advanced retry strategies (Planned v0.3.0)
- 🔄 Request/Response interceptors (Planned v0.4.0)
🧾 Comparison with other libraries
Why not requests, httpx, or aiohttp?
| Feature | Reqivo | requests | httpx | aiohttp |
|---|---|---|---|---|
| Zero dependencies | ✅ | ❌ | ❌ | ❌ |
| Async/await native | ✅ | ❌ | ✅ | ✅ |
| Sync support | ✅ | ✅ | ✅ | ❌ |
| WebSocket support | ✅ | ❌ | ✅ | ✅ |
| HTTP/2 support | 🔄 | ❌ | ✅ | ✅ |
| Connection pooling | ✅ | ✅ | ✅ | ✅ |
| Type hints (PEP 561) | ✅ | ⚠️ | ✅ | ⚠️ |
Memory optimized (__slots__) |
✅ | ❌ | ❌ | ⚠️ |
| Coverage tested ≥ 97% | ✅ | ❓ | ✅ | ❓ |
| Standard library only | ✅ | ❌ | ❌ | ❌ |
Note: Benchmark suite coming soon in a future release.
📚 Documentation & Examples
Comprehensive examples and documentation are available in the Examples Directory:
📖 Guides
- Quick Start - Installation, basic GET/POST, async introduction
- Async Patterns - Concurrent requests, async patterns
- Session Management - Cookies, authentication, persistent connections
- Error Handling - Exception handling, retry logic, circuit breaker
- Advanced Usage - Connection pooling, streaming, WebSockets
🔧 Development & Testing
Run Tests
# Run all tests with tox
tox
# Run specific Python version
tox -e py312
# Run with coverage
tox -e py312
coverage html && open htmlcov/index.html
📖 Requirements
- Python 3.9 or higher
- No external dependencies for core functionality
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
📝 License
MIT © 2026 — Rodrigo Ezequiel Roldán
View full license
🗺️ Roadmap & Changelog
- CHANGELOG - Version history and release notes
- GitHub Issues - Bug reports and feature requests
- Milestones - Planned features and development timeline
Metadata
Release files for Reqivo 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reqivo-0.2.0.tar.gz | 79.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reqivo-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 111.4 kB
Release files / reqivo-0.2.0.tar.gz
| Download URL | reqivo-0.2.0.tar.gz |
|---|---|
| Size | 79.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f72f0d34a1eeb60ec86de6cfa2424ab20bc4b02bdcf4a6bd9f466cccd0c19ab8
|
|
BLAKE2b-256 checksum How to use checksums |
d83a9386cb36000b6392d52d6ed51d6338e3e98923d7a2b814dfaf5dec37e43a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency logRelease files / reqivo-0.2.0-py3-none-any.whl
| Download URL | reqivo-0.2.0-py3-none-any.whl |
|---|---|
| Size | 31.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1399881ceb194c708f5becf6d614cabdf512fe30667ecdc944bb7662e452f9ad
|
|
BLAKE2b-256 checksum How to use checksums |
c2802f1e216e75be338b32918a233907f274cece975464753143a72140247477
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency log