Merged
Conversation
…nd enable h2 unstable feature - primp-hyper: enable h2's 'unstable' feature for initial_stream_id() - primp-rustls: gate GREASE constants, imports, and variables used only with impersonate - primp-tokio-rustls: fix clippy io_other_error lint in test
- Add Chrome 147/148, Edge 147/148, Opera 130/131 impersonation profiles - Add shared impersonation helpers (constants, os_platform, header orders) - Switch BrowserSettings.browser_emulator to Arc<BrowserEmulator>
- Replace per-request emulator construction with OnceLock-cached Arc<BrowserEmulator> - Consolidate duplicated settings into shared static data functions - Optimize Chrome, Edge, Opera, Safari, and Firefox impersonation modules - Fix clippy warning for redundant closure in safari_emulator
…upport - Add initial_stream_window_increment field to Http2Data and stream state - Flush initial stream WINDOW_UPDATE to wire before poll returns - Propagate through primp-h2, primp-hyper, primp-hyper-util, primp-reqwest
- Fix sec-fetch-user position in all header order functions (before sec-fetch-dest) - Remove cache-control from Chrome/Edge profiles (Opera-only header) - Add priority header to all modern browser profiles - Rename header_order_upgrade_first to header_order_upgrade_first_sec_chua_last - Move sec-ch-ua block after sec-fetch-* for Chrome 148+ and Edge 146+ - Fix Sec-CH-UA grease brand names using correct grease_chars modulo 11 - Fix Sec-CH-UA grease versions using correct greased_versions modulo 3 - Fix Sec-CH-UA brand permutation order using seed % 6 lookup table - Align all Chrome, Edge, and Opera Sec-CH-UA with Chromium GenerateBrandVersionList
…space
primp-python:
- Extract duplicate sync/async response body/text/json/headers/cookies
logic into response_shared.rs (~300 lines eliminated)
- Fix Bound<PyBytes>::as_bytes vs Py<PyBytes>::as_bytes(py) mismatch
- Use Python::attach for json_async GIL acquisition (PyO3 0.28 API)
- Remove duplicate IndexMapSSR type alias in traits.rs
- Track Cargo.lock (workspace with app crates needs reproducible builds)
primp-reqwest:
- Gate http2_headers_order: None init with #[cfg(feature = "http2")]
primp-h2:
- Fix clippy::let_unit_value on inc_connection_window() call
clippy fixes:
- io::Error::new(ErrorKind::Other) -> io::Error::other()
- Mixed inner/outer module attributes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
Browser Impersonation (primp, primp-python)
HTTP/2 Fingerprinting (primp-h2, primp-hyper, primp-reqwest)
Python Bindings (primp-python)
Housekeeping