Tags: longcipher/hpx
Tags
Refactor HTTP client response handling and TLS session caching - Updated the response handling in `crates/hpx/src/client/http/future.rs` to use `Response::from_client_response` for better clarity and consistency. - Enhanced the recovery layer in `crates/hpx/src/client/layer/recovery.rs` to improve error handling and response body processing. - Modified the request construction in `crates/hpx/src/client/request.rs` to support streaming bodies without pre-buffering. - Improved the response struct in `crates/hpx/src/client/response.rs` to allow for better body handling and deserialization. - Refactored header sorting logic in `crates/hpx/src/header.rs` to preserve original casing and order while processing headers. - Enhanced TLS session caching in `crates/hpx/src/tls/boring.rs` and `crates/hpx/src/tls/boring/cache.rs` to support better session management and eviction policies.
Implement HTTP client configuration groups with reusable settings for… … transport, connection pool, TLS, protocol, and proxy options - Added `config_groups.rs` to define grouped configuration options for the HTTP client. - Introduced `TransportConfigOptions`, `PoolConfigOptions`, `TlsConfigOptions`, `ProtocolConfigOptions`, and `ProxyConfigOptions` structs with default values and builder methods for customization. - Enhanced the `get_all` method in the cookie module to iterate over stored cookies more efficiently. - Updated hooks service to improve error handling and response processing in the client layer. - Added assertions in the delay service tests to ensure proper functionality.
feat: Add structured browser fingerprinting and caching utilities - Introduced `TlsFingerprint` and `Http2Fingerprint` structs for structured representation of TLS and HTTP/2 settings. - Implemented caching for TLS configurations to optimize repeated fingerprint usage. - Added `HeaderComposer` for composing HTTP headers with priority-based deduplication. - Created a diff utility to compare browser fingerprints and report differences. - Added comprehensive tests for fingerprint creation, caching, and diffing functionalities.
feat(cli): add hpx CLI for download management - Introduced a new CLI tool for hpx, allowing users to manage downloads. - Implemented commands for adding, pausing, resuming, removing, listing, and checking the status of downloads. - Integrated with the existing download engine to handle download requests and priorities. feat(client): enhance response recovery mechanism - Added a recovery layer to handle specific HTTP status responses and allow for replaying requests. - Implemented hooks for status-based recovery, enabling custom handling of responses like PAYMENT_REQUIRED. - Improved body handling to limit the size of buffered responses for recovery. refactor(client): reorganize client modules and types - Refactored client response body handling to use a unified ClientResponseBody type. - Updated various client layers to utilize the new response body type. - Cleaned up imports and module structures for better readability and maintainability. test(retry): add tests for status recovery functionality - Created tests to verify the behavior of the recovery mechanism for specific HTTP status codes. - Ensured that non-replayable bodies and oversized responses are handled correctly during recovery attempts.
PreviousNext