0x676e67 / reqwest-impersonate

An intuitive and robust Rust HTTP/WebSocket Client featuring TLS/JA3/JA4/HTTP2 fingerprint impersonate
Apache License 2.0
87 stars 18 forks source link

Benchmark with reqwest! #27

Closed luanon404 closed 1 hour ago

luanon404 commented 2 weeks ago

I found this cool project when looking at issues of reqwest, i have 3 questions.

1. Will the parts you edit affect overall performance? 2. Are the changes in reqwest-impersonate deterministic when using multiple TLS configurations for tasks like account registration? How does this differ from using the main reqwest library? 3. Do you plan to create a mock version, like an extension, that takes an object from the main reqwest library and returns a modified object?

Thank you!

luanon404 commented 2 weeks ago

Sorry for my english

cxw620 commented 7 hours ago

This owner of this repo has done mainly such work to impersonating Chrome, Firefox or else:

So theoretically:

  1. Little perf regression which can be ignored, unless my priv proj shows such result, and I mainly take this repo as reference.
  2. Emm, you may wonder if changes that this crate makes is also characteristic. Who knows? Anti-fingerprinting is something devil works harder. At least it does much well on TLS or HTTP2 fingerprint impersonation.
luanon404 commented 6 hours ago

This owner of this repo has done mainly such work to impersonating Chrome, Firefox or else:

  • Add boringssl as TLS backend, which Chromium uses.
  • Modify many low level crates like hyper, h2 to deal with HTTP2 fingerprinting.

So theoretically:

  1. Little perf regression which can be ignored, unless my priv proj shows such result, and I mainly take this repo as reference.
  2. Emm, you may wonder if changes that this crate makes is also characteristic. Who knows? Anti-fingerprinting is something devil works harder. At least it does much well on TLS or HTTP2 fingerprint impersonation.

First thank you for the answer, second I have more one question, Im using proxy, does the tls affect the proxy? or it only works with local network? because i tried all http client in nodejs, golang, python, rust, curl but only library requests from python give me 200 result, the others not, is that because tls? all other http client support http/2, but only requests use http/1.1, thank you.

luanon404 commented 1 hour ago

Ah he is 1 cent, i know him