Changelog¶
All notable changes to RequestX will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added - Comprehensive documentation with Read the Docs integration - Performance benchmarking suite - Advanced async/await examples - Migration guide from requests library
Changed - Improved error messages for better debugging - Enhanced connection pooling performance
Fixed - Minor memory leaks in session management - Edge cases in async context detection
[0.1.0] - 2025-01-XX¶
Added - Initial release of RequestX - Drop-in replacement for requests library - Native async/await support with automatic context detection - High-performance Rust-based HTTP client using hyper - Complete requests API compatibility - Session management with persistent connections and cookies - Comprehensive error handling with requests-compatible exceptions - Cross-platform support (Windows, macOS, Linux) - Support for Python 3.8+ - HTTP/2 support out of the box - Advanced features:
Request/response interceptors
Automatic retry mechanisms
Connection pooling
SSL/TLS configuration
Proxy support
Authentication methods
File upload/download
Streaming responses
Timeout configuration
Custom headers and cookies
Performance Improvements - 2-5x faster than requests for synchronous operations - 3-10x faster than aiohttp for asynchronous operations - Lower memory usage through Rust’s efficient memory management - Better connection pooling with hyper’s HTTP/2 support
Developer Experience - Comprehensive test suite with >95% code coverage - Type hints for better IDE support - Detailed documentation and examples - Migration guide from requests - Performance benchmarking tools
Build System - Cross-platform wheel building with maturin - GitHub Actions CI/CD pipeline - Automated testing on multiple Python versions - PyPI publishing automation
Documentation - Complete API reference - User guide with examples - Async/await usage guide - Performance optimization guide - Migration guide from requests - Contributing guidelines
Release Notes¶
Version 0.1.0 represents the initial stable release of RequestX. This version provides:
Full Compatibility: 100% API compatibility with the requests library for easy migration
Performance: Significant performance improvements through Rust implementation
Modern Features: Native async/await support and HTTP/2 compatibility
Production Ready: Comprehensive testing and documentation
Breaking Changes from Pre-release - None (this is the first stable release)
Migration from requests
- Simply change import requests to import requestx as requests
- All existing code should work without modification
- Optionally use async/await for better performance
Known Limitations - Custom adapters from requests are not supported (use RequestX’s native features instead) - Some advanced requests features may have slightly different behavior (documented in migration guide)
Supported Platforms - Python 3.8, 3.9, 3.10, 3.11, 3.12 - Windows (x86_64, ARM64) - macOS (x86_64, ARM64/Apple Silicon) - Linux (x86_64, ARM64)
Dependencies - No runtime Python dependencies (all bundled in wheels) - Rust dependencies are statically linked
Future Roadmap¶
Version 0.2.0 (Planned) - WebSocket support - HTTP/3 support (when available in hyper) - Advanced caching mechanisms - Request/response middleware system - Enhanced debugging and logging - Performance monitoring integration
Version 0.3.0 (Planned) - GraphQL client integration - Advanced authentication methods (OAuth2, JWT) - Request signing and verification - Enhanced proxy support - Circuit breaker patterns
Long-term Goals - gRPC support - Advanced load balancing - Service mesh integration - Observability and tracing - Plugin system for extensions
Contributing¶
We welcome contributions! See our Contributing Guide for details on:
Reporting bugs
Suggesting features
Submitting pull requests
Development setup
Testing guidelines
Recent Contributors - RequestX Team - Initial implementation and design - Community contributors - Bug reports and feature suggestions
Security¶
Security Policy We take security seriously. Please report security vulnerabilities to security@requestx.dev.
Security Updates - All security updates will be released as patch versions - Security advisories will be published on GitHub - Critical security issues will be fast-tracked
Supported Versions We provide security updates for: - Latest major version (0.x.x) - Previous major version for 6 months after new major release
License¶
RequestX is released under the MIT License. See the LICENSE file for details.
Third-party Licenses RequestX includes code from several open-source projects: - hyper (MIT License) - HTTP implementation - tokio (MIT License) - Async runtime - PyO3 (Apache-2.0/MIT) - Python-Rust bindings
All third-party licenses are included in the distribution and available in the LICENSES directory.
Acknowledgments¶
RequestX builds upon the excellent work of many open-source projects:
requests by Kenneth Reitz - API design inspiration
hyper - High-performance HTTP implementation
tokio - Async runtime for Rust
PyO3 - Python-Rust integration
maturin - Python extension building
Special thanks to the Python and Rust communities for creating the ecosystem that makes RequestX possible.
Support¶
Getting Help - Documentation: https://requestx.readthedocs.io - GitHub Issues: https://github.com/neuesql/requestx/issues - GitHub Discussions: https://github.com/neuesql/requestx/discussions
Commercial Support For commercial support, training, or consulting, contact us at support@requestx.dev.
Community Join our community: - GitHub Discussions for questions and ideas - Twitter @RequestX for updates and announcements - Blog posts and tutorials on our website