# 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