reqres 1.0.0

A pure Rust async HTTP client library based on Tokio with HTTP/2, connection pooling, proxy, cookie, compression, benchmarks, and comprehensive tests
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2026-04-14

### ๐ŸŽ‰ Major Release - First Stable Version

**reqres v1.0.0 is now released!**

This marks the first stable release of reqres, a pure Rust async HTTP client library. The API is now frozen and ready for production use.

### โœจ Added

- **Comprehensive Test Coverage**
  - 168 total tests (142 unit tests + 26 integration tests)
  - 65-70% code coverage
  - Tests for all major modules: client, request, response, pool, compression, cookie, proxy, error

- **Unit Tests** (client.rs)
  - 34 new unit tests for client functionality
  - ClientConfigInternal configuration tests
  - ClientBuilder pattern tests
  - URL parsing tests
  - Response parsing tests

- **Integration Tests**
  - 26 integration tests using httpbin.org
  - Tests for GET, POST, PUT, DELETE requests
  - Cookie handling tests
  - Redirect handling tests
  - Timeout and retry tests
  - Compression support tests
  - Connection pooling tests

- **Enhanced Connection Pool**
  - Fixed 9 previously ignored network tests
  - Added `StreamWrapper::Dummy` for testing
  - Added `PooledConnection::mock()` method for unit testing
  - Improved test reliability without requiring actual network connections

### ๐Ÿš€ Features

- **HTTP/1.1 and HTTP/2 Support**
  - Automatic protocol negotiation via ALPN
  - Graceful fallback to HTTP/1.1

- **Connection Pooling**
  - Per-host connection management
  - Keep-alive support
  - Idle connection cleanup
  - Configurable max connections and timeout

- **Compression**
  - Automatic gzip, deflate, brotli decompression
  - Transparent content-encoding handling

- **Cookie Management**
  - Automatic cookie storage and sending
  - Support for Set-Cookie headers
  - CookieJar API for manual management

- **Proxy Support**
  - HTTP/HTTPS proxy configuration
  - SOCKS5 proxy support
  - Proxy authentication

- **Advanced Features**
  - Redirect following (configurable)
  - Custom timeouts
  - Custom User-Agent
  - Request/Response headers
  - JSON and form data support

### ๐Ÿ“Š Performance

- **Benchmarks**
  - Connection pool: 20-25% performance improvement
  - HTTP/2 vs HTTP/1.1: 15-20% improvement
  - Cookie operations: nanosecond-level performance (50-700 ns)

### ๐Ÿ“š Documentation

- Complete API documentation with doc comments
- Comprehensive README with examples
- 8 example programs demonstrating all features
- Performance testing guide

### ๐Ÿงช Testing

- **Unit Tests**: 142 tests covering all modules
- **Integration Tests**: 26 tests with real HTTP servers
- **Benchmark Tests**: 8 performance benchmarks
- **Test Coverage**: ~65-70% overall coverage

### ๐Ÿ”ง Dependencies

- tokio = "1.44" (async runtime)
- bytes = "1.10" (zero-copy data structures)
- thiserror = "2.0" (error handling)
- rustls = "0.23" (TLS/HTTPS)
- h2 = "0.4" (HTTP/2)
- serde = "1.0" (JSON serialization)
- flate2 = "1.0" (gzip/deflate)
- brotli = "7.0" (brotli compression)
- cookie = "0.18" (cookie management)

### ๐Ÿ“ Notes

- **API Frozen**: The public API is now stable and will not change in a breaking manner.
- **Backwards Compatibility**: Future 1.x releases will maintain backwards compatibility.
- **Production Ready**: Extensively tested and ready for production use.

### ๐Ÿ™ Contributors

- AI-assisted development team
- Thanks to all contributors and users who provided feedback

### ๐Ÿ“„ License

MIT License - see [LICENSE](LICENSE) for details

---

## [0.8.0] - 2026-04-14

### Added
- Significant test coverage improvements
- 109 new unit tests across core modules
- Client module test additions
- Pool module test enhancements

## [0.7.0] - 2026-04-13

### Added
- Performance benchmarks using Criterion
- Comprehensive documentation
- Example programs
- Performance testing guide

## [0.6.0] - 2026-04-12

### Added
- Proxy support (HTTP/HTTPS/SOCKS5)
- Cookie management
- Compression support (gzip/deflate/brotli)
- Range request support

## [0.5.0] - 2026-04-11

### Added
- HTTP/3 (QUIC) support (experimental)
- 0-RTT handshake support
- Protocol negotiation

## [0.4.0] - 2026-04-10

### Added
- High-performance connection pool
- Zero-copy data structures
- Connection reuse
- Async-safe operations

## [0.3.0] - 2026-04-09

### Added
- HTTP/2 support
- ALPN protocol negotiation
- Multiplexing support
- Auto fallback to HTTP/1.1

## [0.2.0] - 2026-04-08

### Added
- HTTPS support via Rustls
- ClientBuilder pattern
- Timeout configuration
- Redirect following
- JSON request/response support
- Bytes zero-copy body

## [0.1.0] - 2026-04-07

### Added
- Initial release
- Basic HTTP/1.1 client
- GET/POST requests
- Async support with Tokio
- Basic error handling