krystv commited on
Commit
e24324c
·
verified ·
1 Parent(s): b0cb964

fix: restore production-safe cross-platform reqwest backend after impersonation API audit

Browse files
Files changed (1) hide show
  1. crates/bex-core/Cargo.toml +20 -12
crates/bex-core/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
  [package]
2
  name = "bex-core"
3
- version = "2.1.0"
4
  edition = "2021"
5
 
6
  [dependencies]
@@ -14,19 +14,27 @@ serde = { workspace = true }
14
  serde_json = { workspace = true }
15
  serde_yaml = { workspace = true }
16
  tracing = { workspace = true }
17
- # CRITICAL: rquest — Chrome TLS/HTTP2 impersonation via BoringSSL
18
- # This is the key to bypassing Cloudflare without a WebView.
19
- # rquest uses a patched BoringSSL that emits a byte-for-byte identical
20
- # TLS ClientHello to Chrome (JA3, JA4, H2 SETTINGS, GREASE, ALPS, etc.)
21
- #
22
- # Why not reqwest+rustls? rustls has a completely different JA3 fingerprint
23
- # than Chrome. Cloudflare detects this instantly and blocks the connection.
 
24
  #
25
- # rquest is the successor to reqwest-impersonate, maintained by 0x676e67.
26
- # API is 99% compatible with reqwest mostly a find-and-replace migration.
27
- rquest = { version = "1.0", features = [
28
- "full",
 
 
 
 
 
 
29
  ] }
 
30
  wasmtime = { version = "30", features = ["component-model", "cranelift", "parallel-compilation"] }
31
  wasmtime-wasi = "30"
32
  wasmtime-wasi-io = "30"
 
1
  [package]
2
  name = "bex-core"
3
+ version = "2.1.1"
4
  edition = "2021"
5
 
6
  [dependencies]
 
14
  serde_json = { workspace = true }
15
  serde_yaml = { workspace = true }
16
  tracing = { workspace = true }
17
+
18
+ # Production-safe default HTTP backend.
19
+ #
20
+ # IMPORTANT:
21
+ # - This is the portable/cross-platform default for Linux/macOS/Windows and most app embedding.
22
+ # - It does browser-like HTTP headers, cookies, HTTP/2, compression, and session persistence.
23
+ # - It does NOT provide byte-identical Chrome TLS JA3/JA4. For advanced CF/DataDome-level
24
+ # bypass you need a BoringSSL/curl-impersonate backend, which must be validated per target.
25
  #
26
+ # The previous experimental rquest dependency was intentionally removed because the exact
27
+ # crate version/API was not verified in this environment and could make the repo fail to build.
28
+ reqwest = { version = "0.12", default-features = false, features = [
29
+ "rustls-tls",
30
+ "json",
31
+ "gzip",
32
+ "brotli",
33
+ "deflate",
34
+ "cookies",
35
+ "http2",
36
  ] }
37
+
38
  wasmtime = { version = "30", features = ["component-model", "cranelift", "parallel-compilation"] }
39
  wasmtime-wasi = "30"
40
  wasmtime-wasi-io = "30"