ethon-impersonate 0.17.9-arm64-darwin-24 → 0.17.10-arm64-darwin-24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4a844da41033feb66a82554e165b80a8824b1cf4b585e38a5018e70cd67be65
4
- data.tar.gz: '09e4cfe9d8ed02e6c7f3ef7e8e5758a8f6fd2b997cef0ed9f27c473741dc46f9'
3
+ metadata.gz: 8cc8b654323ff24981147b0fe79044fe9370a3f9b5704974dd8c9b2b4eb292bc
4
+ data.tar.gz: 729ad911522dcfad444d0f222869321c1ae2e841dbea3264f46d0091ed81c1a3
5
5
  SHA512:
6
- metadata.gz: f06eb881924b15b5a0c156396a46a0d89d1b31a6e11cfd2480203aed49a0d176c6182e2fb0e7007f13b5428ef5218a4276c1cf75db77ea862ad96d512e1a6c31
7
- data.tar.gz: acda235f47cb0b29d30d8bbcb4e6b3ad9171a3c205077f0b6ff67cfc76e07a0d9a24623359423c0c0bc905c3d087b984d7b07d0084c805234fd6a5e8d5391472
6
+ metadata.gz: 19cd9cb87ddbce1564787cbb64b410bc2133e83bd0434b94022f445601e0845603ac8c00814793ab06761b0b1793a0c511d98250b68988ceb7f430931a5bb702
7
+ data.tar.gz: 1df8e015dcfb3f7f302a1caac80050900e53023085b831aa44563d3abe411958a1b6688c70717c67e763d4cf61e4fb4b088aebfb190e7bbe15f116bc3a93c5cd
data/CHANGELOG.md CHANGED
@@ -2,61 +2,61 @@
2
2
 
3
3
  ## Master
4
4
 
5
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.17.9...master)
5
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.17.9...master)
6
6
 
7
7
  ## 0.17.9
8
8
 
9
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.17.8...v0.17.9)
9
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.17.8...v0.17.9)
10
10
 
11
11
  * Bumped [`curl-impersonate`](https://github.com/lexiforest/curl-impersonate) to `v1.0.0`
12
12
 
13
13
  ## 0.17.8
14
14
 
15
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.16.0...v0.17.8)
15
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.16.0...v0.17.8)
16
16
 
17
17
  * Added basic support for [`curl-impersonate`](https://github.com/lexiforest/curl-impersonate) @ `v1.0.0rc1`
18
18
 
19
19
  ## 0.16.0
20
20
 
21
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.15.0...v0.16.0)
21
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.15.0...v0.16.0)
22
22
 
23
23
  * Added `redirect_url` value to available informations and `Easy::Mirror`.
24
24
  ([Adrien Rey-Jarthon](https://github.com/jarthod)
25
25
 
26
26
  ## 0.15.0
27
27
 
28
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.14.0...v0.15.0)
28
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.14.0...v0.15.0)
29
29
 
30
30
  ## 0.12.0
31
31
 
32
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.11.0...v0.12.0)
32
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.11.0...v0.12.0)
33
33
 
34
- - Removed deprecated `CURLE_SSL_CACERT` pinned in curl v7.62.0 ([@arku](https://github.com/arku) in [#158](https://github.com/dsojevic/ethon-impersonate/pull/158))
34
+ - Removed deprecated `CURLE_SSL_CACERT` pinned in curl v7.62.0 ([@arku](https://github.com/arku) in [#158](https://github.com/serpapi/ethon-impersonate/pull/158))
35
35
 
36
36
 
37
37
  ## 0.11.0
38
38
 
39
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.10.1...v0.11.0)
39
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.10.1...v0.11.0)
40
40
 
41
41
  ## 0.10.1
42
42
 
43
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.10.0...v0.10.1)
43
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.10.0...v0.10.1)
44
44
 
45
45
  ## 0.10.0
46
46
 
47
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.9.1...v0.10.0)
47
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.9.1...v0.10.0)
48
48
 
49
49
  ## 0.9.1
50
50
 
51
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.9.0...v0.9.1)
51
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.9.0...v0.9.1)
52
52
 
53
53
  ## 0.9.0
54
54
 
55
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.8.1...v0.9.0)
55
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.8.1...v0.9.0)
56
56
 
57
57
  ## 0.8.1
58
58
 
59
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.8.0...v0.8.1)
59
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.8.0...v0.8.1)
60
60
 
61
61
  * Support optional escaping of params.
62
62
  ([Tasos Laskos](https://github.com/zapotek)
@@ -65,24 +65,24 @@
65
65
 
66
66
  ## 0.8.0
67
67
 
68
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.7.3...v0.7.4)
68
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.3...v0.7.4)
69
69
 
70
70
  * `Easy::Mirror`: Reduced object allocations and method calls during info handling.
71
71
  ([Tasos Laskos](https://github.com/zapotek)
72
72
 
73
73
  ## 0.7.4
74
74
 
75
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.7.3...v0.7.4)
75
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.3...v0.7.4)
76
76
 
77
77
  * Support different array encodings for params.
78
- ([Marcello Barnaba](https://github.com/ifad), [\#104](https://github.com/dsojevic/ethon-impersonate/pull/104))
78
+ ([Marcello Barnaba](https://github.com/ifad), [\#104](https://github.com/serpapi/ethon-impersonate/pull/104))
79
79
  * Programtic access to version infos.
80
- ([Jonas Wagner](https://github.com/jwagner), [\#90](https://github.com/dsojevic/ethon-impersonate/pull/90))
80
+ ([Jonas Wagner](https://github.com/jwagner), [\#90](https://github.com/serpapi/ethon-impersonate/pull/90))
81
81
 
82
82
 
83
83
  ## 0.7.3
84
84
 
85
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.7.2...v0.7.3)
85
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.2...v0.7.3)
86
86
 
87
87
  * `EthonImpersonate::Curl::FDSet`
88
88
  * Set `:fd_array` size to the current MS Windows `FD_SETSIZE` (2048).
@@ -93,7 +93,7 @@
93
93
 
94
94
  ## 0.7.2
95
95
 
96
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.7.1...v0.7.2)
96
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.1...v0.7.2)
97
97
 
98
98
  * FFI data-types updated to be more correct.
99
99
 
@@ -108,25 +108,25 @@ Not backwards compatible changes:
108
108
 
109
109
  * `mime-types` are no longer a dependency. The gem will be still used if available to determine the mime type of a file which is uploaded. That means you have to have take care of the gem installation yourself.
110
110
 
111
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.6.3...v0.7.0)
111
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.3...v0.7.0)
112
112
 
113
113
  ## 0.6.3
114
114
 
115
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.6.2...v0.6.3)
115
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.2...v0.6.3)
116
116
 
117
117
  ## 0.6.2
118
118
 
119
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.6.1...v0.6.2)
119
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.1...v0.6.2)
120
120
 
121
121
  ## 0.6.1
122
122
 
123
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.6.0...v0.6.1)
123
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.0...v0.6.1)
124
124
 
125
125
  The changelog entries are coming soon!
126
126
 
127
127
  ## 0.6.0
128
128
 
129
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.12...v0.6.0)
129
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.12...v0.6.0)
130
130
 
131
131
  The changelog entries are coming soon!
132
132
 
@@ -137,59 +137,59 @@ Bugfixes:
137
137
 
138
138
  ## 0.5.12
139
139
 
140
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.11...v0.5.12)
140
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.11...v0.5.12)
141
141
 
142
142
  Enhancements:
143
143
 
144
144
  * Performance optimizations.
145
- ([Kyle Oppenheim](https://github.com/koppenheim) and [Richie Vos](https://github.com/richievos), [\#48](https://github.com/dsojevic/ethon-impersonate/pull/48))
145
+ ([Kyle Oppenheim](https://github.com/koppenheim) and [Richie Vos](https://github.com/richievos), [\#48](https://github.com/serpapi/ethon-impersonate/pull/48))
146
146
  * Reuse memory pointer.
147
- ([Richie Vos](https://github.com/richievos), [\#49](https://github.com/dsojevic/ethon-impersonate/pull/49))
147
+ ([Richie Vos](https://github.com/richievos), [\#49](https://github.com/serpapi/ethon-impersonate/pull/49))
148
148
 
149
149
  Bugfixes:
150
150
 
151
151
  * Fix windows install.
152
- ([Derik Olsson](https://github.com/derikolsson), [\#47](https://github.com/dsojevic/ethon-impersonate/pull/47))
152
+ ([Derik Olsson](https://github.com/derikolsson), [\#47](https://github.com/serpapi/ethon-impersonate/pull/47))
153
153
  * Handle urls that already contain query params.
154
- ([Turner King](https://github.com/turnerking ), [\#45](https://github.com/dsojevic/ethon-impersonate/pull/45))
154
+ ([Turner King](https://github.com/turnerking ), [\#45](https://github.com/serpapi/ethon-impersonate/pull/45))
155
155
 
156
156
  ## 0.5.11
157
157
 
158
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.10...v0.5.11)
158
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.10...v0.5.11)
159
159
 
160
160
  Enhancements:
161
161
 
162
162
  * Add support for postredirs, unrestricted_auth.
163
163
  * Add support for cookie, cookiejar, cookiefile.
164
- ([erwanlr](https://github.com/erwanlr), [\#46](https://github.com/dsojevic/ethon-impersonate/pull/46))
164
+ ([erwanlr](https://github.com/erwanlr), [\#46](https://github.com/serpapi/ethon-impersonate/pull/46))
165
165
  * Relax ffi requirements.
166
- ([voxik](https://github.com/voxik), [\#40](https://github.com/dsojevic/ethon-impersonate/pull/40))
166
+ ([voxik](https://github.com/voxik), [\#40](https://github.com/serpapi/ethon-impersonate/pull/40))
167
167
  * Various documentation improvements.
168
168
  ([Craig Little](https://github.com/craiglittle))
169
169
 
170
170
  Bugfixes:
171
171
 
172
172
  * Fix the memory leaks.
173
- ([Richie Vos](https://github.com/richievos), [\#45](https://github.com/dsojevic/ethon-impersonate/pull/45))
173
+ ([Richie Vos](https://github.com/richievos), [\#45](https://github.com/serpapi/ethon-impersonate/pull/45))
174
174
 
175
175
  ## 0.5.10
176
176
 
177
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.9...v0.5.10)
177
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.9...v0.5.10)
178
178
 
179
179
  Enhancements:
180
180
 
181
181
  * Allow custom requests.
182
- ([Nathan Sutton](https://github.com/nate), [\#36](https://github.com/dsojevic/ethon-impersonate/pull/36))
182
+ ([Nathan Sutton](https://github.com/nate), [\#36](https://github.com/serpapi/ethon-impersonate/pull/36))
183
183
  * Use updated version of FFI.
184
184
 
185
185
  Bugfixes:
186
186
 
187
187
  * Fix windows install issue.
188
- ([brainsucker](https://github.com/brainsucker), [\#38](https://github.com/dsojevic/ethon-impersonate/pull/38))
188
+ ([brainsucker](https://github.com/brainsucker), [\#38](https://github.com/serpapi/ethon-impersonate/pull/38))
189
189
 
190
190
  ## 0.5.9
191
191
 
192
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.8...v0.5.9)
192
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.8...v0.5.9)
193
193
 
194
194
  Enhancements:
195
195
 
@@ -197,17 +197,17 @@ Enhancements:
197
197
 
198
198
  ## 0.5.8
199
199
 
200
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.7...v0.5.8)
200
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.7...v0.5.8)
201
201
 
202
202
  Enhancements:
203
203
 
204
204
  * Add support for protocols and redir_protocols(
205
205
  [libcurl SASL buffer overflow vulnerability](http://curl.haxx.se/docs/adv_20130206.html)).
206
- * Add max_send_speed_large and max_recv_speed_large([Paul Schuegraf](https://github.com/pschuegr), [\#33](https://github.com/dsojevic/ethon-impersonate/pull/33))
206
+ * Add max_send_speed_large and max_recv_speed_large([Paul Schuegraf](https://github.com/pschuegr), [\#33](https://github.com/serpapi/ethon-impersonate/pull/33))
207
207
 
208
208
  ## 0.5.7
209
209
 
210
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.6...v0.5.7)
210
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.6...v0.5.7)
211
211
 
212
212
  Enhancements:
213
213
 
@@ -215,7 +215,7 @@ Enhancements:
215
215
 
216
216
  ## 0.5.6
217
217
 
218
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.4...v0.5.6)
218
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.4...v0.5.6)
219
219
 
220
220
  Bugfixes:
221
221
 
@@ -223,7 +223,7 @@ Bugfixes:
223
223
 
224
224
  ## 0.5.4
225
225
 
226
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.3...v0.5.4)
226
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.3...v0.5.4)
227
227
 
228
228
  Enhancements:
229
229
 
@@ -233,7 +233,7 @@ Enhancements:
233
233
 
234
234
  ## 0.5.3
235
235
 
236
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.2...v0.5.3)
236
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.2...v0.5.3)
237
237
 
238
238
  Enhancements:
239
239
 
@@ -248,7 +248,7 @@ Bugfixes:
248
248
 
249
249
  ## 0.5.2
250
250
 
251
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.1...v0.5.2)
251
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.1...v0.5.2)
252
252
 
253
253
  Enhancements:
254
254
 
@@ -261,7 +261,7 @@ Bugfixes:
261
261
 
262
262
  ## 0.5.1
263
263
 
264
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.5.0...v0.5.1)
264
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.0...v0.5.1)
265
265
 
266
266
  Bugfixes:
267
267
 
@@ -270,7 +270,7 @@ Bugfixes:
270
270
 
271
271
  ## 0.5.0
272
272
 
273
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.4.4...v0.5.0)
273
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.4...v0.5.0)
274
274
 
275
275
  Enhancements:
276
276
 
@@ -284,7 +284,7 @@ Bugfixes:
284
284
 
285
285
  ## 0.4.4
286
286
 
287
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.4.3...v0.4.4)
287
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.3...v0.4.4)
288
288
 
289
289
  Enhancements:
290
290
 
@@ -292,7 +292,7 @@ Enhancements:
292
292
 
293
293
  ## 0.4.3
294
294
 
295
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.4.2...v0.4.3)
295
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.2...v0.4.3)
296
296
 
297
297
  Enhancements:
298
298
 
@@ -307,7 +307,7 @@ Bugfixes:
307
307
 
308
308
  ## 0.4.2
309
309
 
310
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.4.1...v0.4.2)
310
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.1...v0.4.2)
311
311
 
312
312
  Enhancements:
313
313
 
@@ -316,7 +316,7 @@ Enhancements:
316
316
 
317
317
  ## 0.4.1
318
318
 
319
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.4.0...v0.4.1)
319
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.0...v0.4.1)
320
320
 
321
321
  Bugfixes:
322
322
 
@@ -325,7 +325,7 @@ Bugfixes:
325
325
 
326
326
  ## 0.4.0
327
327
 
328
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.3.0...v0.4.0)
328
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.3.0...v0.4.0)
329
329
 
330
330
  Enhancements:
331
331
 
@@ -340,7 +340,7 @@ Bugfixes:
340
340
 
341
341
  ## 0.3.0
342
342
 
343
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.2.0...v0.3.0)
343
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.2.0...v0.3.0)
344
344
 
345
345
  Enhancements:
346
346
 
@@ -353,7 +353,7 @@ Bugfixes:
353
353
 
354
354
  ## 0.2.0
355
355
 
356
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.1.0...v0.2.0)
356
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.1.0...v0.2.0)
357
357
 
358
358
  Enhancements:
359
359
 
@@ -365,12 +365,12 @@ Enhancements:
365
365
 
366
366
  ## 0.1.0
367
367
 
368
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.0.2...v0.1.0)
368
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.0.2...v0.1.0)
369
369
 
370
370
  Enhancements:
371
371
 
372
372
  * Documentation
373
- ( [Alex P](https://github.com/ifesdjeen), [\#13](https://github.com/dsojevic/ethon-impersonate/issues/13) )
373
+ ( [Alex P](https://github.com/ifesdjeen), [\#13](https://github.com/typhoeus/ethon/issues/13) )
374
374
  * New libcurl option dns_cache_timeout
375
375
  ( [Chris Heald](https://github.com/cheald), [\#192](https://github.com/typhoeus/typhoeus/pull/192) )
376
376
 
@@ -381,7 +381,7 @@ Bugfixes:
381
381
 
382
382
  ## 0.0.2
383
383
 
384
- [Full Changelog](https://github.com/dsojevic/ethon-impersonate/compare/v0.0.1...v0.0.2)
384
+ [Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.0.1...v0.0.2)
385
385
 
386
386
  Bugfixes:
387
387
 
data/LICENSE CHANGED
@@ -1,3 +1,4 @@
1
+ Copyright (c) 2025 SerpApi
1
2
  Copyright (c) 2012-2016 Hans Hasselberg
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining
data/README.md CHANGED
@@ -1,10 +1,15 @@
1
+
2
+
3
+ # Ethon Impersonate ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png "Chrome") ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png "Edge") ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/main/src/safari/safari_24x24.png "Safari") ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png "Firefox") ![Tor](https://raw.githubusercontent.com/alrra/browser-logos/main/src/tor/tor_24x24.png "Tor")
4
+
1
5
  [![Gem Version](https://badge.fury.io/rb/ethon-impersonate.svg)](https://badge.fury.io/rb/ethon-impersonate)
2
- [![Build Status](https://github.com/dsojevic/ethon-impersonate/workflows/Ruby/badge.svg)](https://github.com/dsojevic/ethon-impersonate/actions/workflows/ruby.yml)
6
+ [![Build Status](https://github.com/serpapi/ethon-impersonate/workflows/Ruby/badge.svg)](https://github.com/serpapi/ethon-impersonate/actions/workflows/ruby.yml)
3
7
 
4
- # Ethon Impersonate
8
+ **Ethon Impersonate** is a fork of [Ethon](https://github.com/typhoeus/ethon) that wraps [libcurl-impersonate](https://github.com/lexiforest/curl-impersonate).
5
9
 
6
10
  In Greek mythology, Ethon, the son of Typhoeus and Echidna, is a gigantic eagle. So much for the history.
7
- In the modern world, Ethon is a very basic libcurl wrapper using ffi.
11
+
12
+ This allows you to make HTTP requests that appear to come from real browsers, helping to bypass bot detection and fingerprinting.
8
13
 
9
14
  ## Installation
10
15
 
@@ -18,6 +23,15 @@ With rubygems:
18
23
  gem install ethon-impersonate
19
24
  ```
20
25
 
26
+ ## Dependencies
27
+ On MacOS Apple Silicon, you need to install the following dependencies using Homebrew:
28
+
29
+ ```bash
30
+ brew install libidn2 rtmpdump zstd
31
+ ```
32
+
33
+ Note: Homebrew must be loaded in the same arch than the Ruby interpreter. If you are using `arch -x86_64` to run Ruby, you must also run Homebrew with `arch -x86_64 brew install ...`.
34
+
21
35
  ## Usage
22
36
 
23
37
  Making the first request is simple:
@@ -47,6 +61,52 @@ easy.response_body
47
61
  #=> "<!doctype html><html ..."
48
62
  ```
49
63
 
64
+ ## Browser Impersonation
65
+
66
+ The main feature of this gem is the ability to impersonate real browsers. Use the `impersonate` method to configure the request to look like it's coming from a specific browser:
67
+
68
+ ```ruby
69
+ easy = EthonImpersonate::Easy.new(url: "www.example.com")
70
+ easy.impersonate("chrome136") # Impersonate Chrome 136
71
+ easy.perform
72
+ easy.response_code
73
+ #=> 200
74
+ ```
75
+
76
+ ### Available Browser Targets
77
+
78
+ The gem supports all browser targets available in curl-impersonate. Some popular targets include:
79
+
80
+ - **Chrome**: `chrome136`, `chrome131_android`
81
+ - **Firefox**: `firefox135`
82
+ - **Safari**: `safari184`, `safari184_ios`
83
+ - **Edge**: `edge101`
84
+ - **Tor**: `tor145`
85
+
86
+ For a complete list of available targets, see the [curl-impersonate bin directory](https://github.com/lexiforest/curl-impersonate/tree/main/bin).
87
+
88
+ ### Example with Browser Impersonation
89
+
90
+ ```ruby
91
+ # Impersonate Chrome 136
92
+ easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
93
+ easy.impersonate("chrome136")
94
+ easy.perform
95
+ #=> :ok
96
+
97
+ # Impersonate Firefox 135
98
+ easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
99
+ easy.impersonate("firefox135")
100
+ easy.perform
101
+ #=> :ok
102
+
103
+ # Impersonate Safari 184
104
+ easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
105
+ easy.impersonate("safari184")
106
+ easy.perform
107
+ #=> :ok
108
+ ```
109
+
50
110
  ## Http
51
111
 
52
112
  In order to make life easier, there are some helpers for making HTTP requests:
@@ -91,26 +151,14 @@ multi.add(easy)
91
151
  multi.perform
92
152
  ```
93
153
 
94
- ## LICENSE
154
+ ## Sponsors
95
155
 
96
- (The MIT License)
156
+ Ethon Impersonate is maintained by **SerpApi**.
97
157
 
98
- Copyright © 2012-2016 [Hans Hasselberg](http://www.hans.io)
158
+ Thanks to all <a href="https://github.com/serpapi/ethon-impersonate/graphs/contributors">contributors</a> of this project past and present.
99
159
 
100
- Permission is hereby granted, free of charge, to any person obtaining a
101
- copy of this software and associated documentation files (the "Software"),
102
- to deal in the Software without restriction, including without
103
- limitation the rights to use, copy, modify, merge, publish, distribute,
104
- sublicense, and/or sell copies of the Software, and to permit persons
105
- to whom the Software is furnished to do so, subject to the following conditions:
160
+ ------
106
161
 
107
- The above copyright notice and this permission notice shall be included
108
- in all copies or substantial portions of the Software.
162
+ <a href="https://serpapi.com/" target="_blank"><img src="https://raw.githubusercontent.com/serpapi/ethon-impersonate/master/assets/serpapi.png" alt="SerpAPI" height="67" width="63"></a>
109
163
 
110
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
111
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
112
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
113
- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
114
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
115
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
116
- OTHER DEALINGS IN THE SOFTWARE.
164
+ Scrape Google and other search engines from [SerpApi](https://serpapi.com/)'s fast, easy, and complete API. 0.66s average response time (≤ 0.5s for Ludicrous Speed Max accounts), 99.95% SLAs, pay for successful responses only.
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.platform = Gem::Platform::RUBY
12
12
  s.authors = ["David Sojevic", "Hans Hasselberg"]
13
13
  s.email = ["david@sojevic.com"]
14
- s.homepage = "https://github.com/dsojevic/ethon-impersonate"
14
+ s.homepage = "https://github.com/serpapi/ethon-impersonate"
15
15
  s.summary = "Impersonate browser-like HTTP requests."
16
16
  s.description = "Realistic browser-like HTTP requests using curl-impersonate's impersonation capabilities."
17
17
 
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.files = Dir.chdir(__dir__) do
25
25
  `git ls-files -z`.split("\x0")
26
- end.reject { |file| file.start_with?(*%w[. Gemfile Guardfile Rakefile profile spec scripts]) || file.end_with?(".gitignore") }
26
+ end.reject { |file| file.start_with?(*%w[. Gemfile Guardfile Rakefile profile spec scripts assets]) || file.end_with?(".gitignore") }
27
27
 
28
28
  s.require_path = "lib"
29
29
  end
Binary file
@@ -32,7 +32,7 @@ module EthonImpersonate
32
32
 
33
33
  def clear; self[:fd_count] = 0; end
34
34
  else
35
- # https://github.com/dsojevic/ethon-impersonate/issues/182
35
+ # https://github.com/typhoeus/ethon/issues/182
36
36
  FD_SETSIZE = begin
37
37
  # Allow to override the (new) default cap
38
38
  if ENV['ETHON_FD_SIZE']
@@ -6,7 +6,7 @@ require "ffi/platform"
6
6
  module EthonImpersonate
7
7
  module Impersonate
8
8
  module Settings
9
- LIB_VERSION = "1.0.0"
9
+ LIB_VERSION = "1.1.0"
10
10
  LIB_EXT_PATH = File.expand_path("../../ext/", File.dirname(__dir__))
11
11
 
12
12
  LIB_DOWNLOAD_BASE_URL = "https://github.com/lexiforest/curl-impersonate/releases/download/v#{LIB_VERSION}/"
@@ -25,12 +25,13 @@ module EthonImpersonate
25
25
  # "i686-windows" => "libcurl-impersonate-v#{LIB_VERSION}.i686-win32.tar.gz",
26
26
  # "riscv64-linux" => "libcurl-impersonate-v#{LIB_VERSION}.riscv64-linux-gnu.tar.gz",
27
27
  "x86_64-linux" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-linux-gnu.tar.gz",
28
- # "x86_64-darwin" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-macos.tar.gz",
28
+ "x86_64-darwin" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-macos.tar.gz",
29
29
  # "x86_64-windows" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-win32.tar.gz",
30
30
  }.freeze
31
31
 
32
32
  GEM_PLATFORMS_MAP = {
33
- "aarch64-darwin" => ["arm64-darwin-24"],
33
+ "aarch64-darwin" => ["arm64-darwin-24", "arm64-darwin"],
34
+ "x86_64-darwin" => ["x86_64-darwin-24"],
34
35
  "x86_64-windows" => ["x64-mingw32"],
35
36
  }.freeze
36
37
 
@@ -2,5 +2,5 @@
2
2
  module EthonImpersonate
3
3
 
4
4
  # EthonImpersonate version.
5
- VERSION = "0.17.9"
5
+ VERSION = "0.17.10"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ethon-impersonate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.9
4
+ version: 0.17.10
5
5
  platform: arm64-darwin-24
6
6
  authors:
7
7
  - David Sojevic
8
8
  - Hans Hasselberg
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-14 00:00:00.000000000 Z
11
+ date: 2025-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -98,7 +98,7 @@ files:
98
98
  - lib/ethon_impersonate/multi/options.rb
99
99
  - lib/ethon_impersonate/multi/stack.rb
100
100
  - lib/ethon_impersonate/version.rb
101
- homepage: https://github.com/dsojevic/ethon-impersonate
101
+ homepage: https://github.com/serpapi/ethon-impersonate
102
102
  licenses:
103
103
  - MIT
104
104
  metadata: {}