rnet 3.0.0rc8__tar.gz → 3.0.0rc9__tar.gz

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.

Potentially problematic release.


This version of rnet might be problematic. Click here for more details.

Files changed (109) hide show
  1. rnet-3.0.0rc9/.github/dependabot.yml +22 -0
  2. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/workflows/ci.yml +126 -28
  3. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/Cargo.lock +27 -21
  4. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/Cargo.toml +4 -3
  5. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/PKG-INFO +4 -2
  6. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/README.md +3 -1
  7. rnet-3.0.0rc8/.github/dependabot.yml +0 -11
  8. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/FUNDING.yml +0 -0
  9. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  10. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  11. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/assets/capsolver.jpg +0 -0
  12. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/assets/hypersolutions.jpg +0 -0
  13. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.github/musl_build.sh +0 -0
  14. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/.gitignore +0 -0
  15. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/LICENSE +0 -0
  16. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/pyproject.toml +0 -0
  17. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/README.md +0 -0
  18. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/bench.py +0 -0
  19. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/benchmark_multi.jpg +0 -0
  20. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/benchmark_multi_threaded.jpg +0 -0
  21. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/benchmark_results.csv +0 -0
  22. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/chart.py +0 -0
  23. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/core.py +0 -0
  24. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/requirements.txt +0 -0
  25. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/benchmark/server.py +0 -0
  26. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/auth.py +0 -0
  27. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/basic_auth.py +0 -0
  28. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/bearer_auth.py +0 -0
  29. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/auth.py +0 -0
  30. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/basic_auth.py +0 -0
  31. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/bearer_auth.py +0 -0
  32. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/body.py +0 -0
  33. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/client.py +0 -0
  34. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/cookie.py +0 -0
  35. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/emulation.py +0 -0
  36. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/form.py +0 -0
  37. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/get.py +0 -0
  38. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/json.py +0 -0
  39. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/multipart.py +0 -0
  40. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/proxy.py +0 -0
  41. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/query.py +0 -0
  42. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/blocking/stream.py +0 -0
  43. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/body.py +0 -0
  44. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/client.py +0 -0
  45. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/emulation.py +0 -0
  46. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/exceptions.py +0 -0
  47. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/form.py +0 -0
  48. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/get.py +0 -0
  49. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/header_map.py +0 -0
  50. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/http1_websocket.py +0 -0
  51. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/http2_websocket.py +0 -0
  52. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/json.py +0 -0
  53. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/keylog.py +0 -0
  54. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/multipart.py +0 -0
  55. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/orig_headers.py +0 -0
  56. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/proxy.py +0 -0
  57. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/query.py +0 -0
  58. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/request.py +0 -0
  59. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/examples/stream.py +0 -0
  60. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/__init__.py +0 -0
  61. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/__init__.pyi +0 -0
  62. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/blocking.py +0 -0
  63. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/cookie.py +0 -0
  64. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/emulation.py +0 -0
  65. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/exceptions.py +0 -0
  66. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/header.py +0 -0
  67. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/http1.py +0 -0
  68. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/http2.py +0 -0
  69. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/py.typed +0 -0
  70. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/python/rnet/tls.py +0 -0
  71. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/bridge/mod.rs +0 -0
  72. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/bridge/sync.rs +0 -0
  73. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/bridge/task.rs +0 -0
  74. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/buffer.rs +0 -0
  75. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/body/mod.rs +0 -0
  76. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/body/multipart.rs +0 -0
  77. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/dns.rs +0 -0
  78. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/mod.rs +0 -0
  79. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/nogil.rs +0 -0
  80. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/req.rs +0 -0
  81. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/history.rs +0 -0
  82. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/http.rs +0 -0
  83. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/mod.rs +0 -0
  84. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/stream.rs +0 -0
  85. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/ws/cmd.rs +0 -0
  86. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/ws/mod.rs +0 -0
  87. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/client/resp/ws/msg.rs +0 -0
  88. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/emulation.rs +0 -0
  89. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/error.rs +0 -0
  90. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/extractor.rs +0 -0
  91. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http/cookie.rs +0 -0
  92. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http/header.rs +0 -0
  93. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http/mod.rs +0 -0
  94. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http/status.rs +0 -0
  95. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http1.rs +0 -0
  96. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/http2.rs +0 -0
  97. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/lib.rs +0 -0
  98. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/macros.rs +0 -0
  99. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/proxy.rs +0 -0
  100. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/tls/identity.rs +0 -0
  101. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/tls/keylog.rs +0 -0
  102. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/tls/mod.rs +0 -0
  103. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/src/tls/store.rs +0 -0
  104. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/cookie_test.py +0 -0
  105. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/header_test.py +0 -0
  106. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/redirect_test.py +0 -0
  107. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/request_test.py +0 -0
  108. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/response_test.py +0 -0
  109. {rnet-3.0.0rc8 → rnet-3.0.0rc9}/tests/tls_test.py +0 -0
@@ -0,0 +1,22 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "github-actions"
9
+ # Workflow files stored in the
10
+ # default location of `.github/workflows`
11
+ directory: "/"
12
+ schedule:
13
+ interval: "weekly"
14
+ - package-ecosystem: "cargo"
15
+ directory: "/"
16
+ schedule:
17
+ interval: "weekly"
18
+ # todo: if only this worked, see https://github.com/dependabot/dependabot-core/issues/4009
19
+ # only tell us if there's a new 'breaking' change we could upgrade to
20
+ # versioning-strategy: increase-if-necessary
21
+ # disable regular version updates, security updates are unaffected
22
+ open-pull-requests-limit: 0
@@ -20,9 +20,6 @@ on:
20
20
  - 'README.md'
21
21
  workflow_dispatch:
22
22
 
23
- env:
24
- MATURIIN_ARGS: '--find-interpreter'
25
-
26
23
  concurrency:
27
24
  group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }}
28
25
  cancel-in-progress: true
@@ -36,7 +33,7 @@ jobs:
36
33
  name: style
37
34
  runs-on: ubuntu-latest
38
35
  steps:
39
- - uses: actions/checkout@v3
36
+ - uses: actions/checkout@v5
40
37
 
41
38
  - uses: actions-rs/toolchain@v1
42
39
  with:
@@ -49,16 +46,17 @@ jobs:
49
46
 
50
47
  - name: Clippy check
51
48
  run: cargo clippy --all-targets --all-features
49
+
52
50
  tests:
53
51
  runs-on: ubuntu-latest
54
52
  steps:
55
- - uses: actions/checkout@v4
56
- - uses: actions/setup-python@v5
53
+ - uses: actions/checkout@v5
54
+ - uses: actions/setup-python@v6
57
55
  with:
58
56
  python-version: 3.x
59
57
  architecture: ${{ matrix.platform.target }}
60
58
  - name: Install the latest version of uv
61
- uses: astral-sh/setup-uv@v5
59
+ uses: astral-sh/setup-uv@v6
62
60
  - name: Set up virtual environment
63
61
  run: |
64
62
  uv venv
@@ -74,11 +72,17 @@ jobs:
74
72
  run: |
75
73
  source .venv/bin/activate
76
74
  pytest
75
+
77
76
  manylinux:
78
77
  runs-on: ${{ matrix.platform.runner }}
79
78
  strategy:
80
79
  fail-fast: false
81
80
  matrix:
81
+ build_type:
82
+ - name: standard
83
+ maturin_args: "--find-interpreter"
84
+ - name: free-threaded
85
+ maturin_args: "--interpreter 3.13t 3.14t"
82
86
  platform:
83
87
  - runner: ubuntu-latest
84
88
  target: x86_64
@@ -110,8 +114,8 @@ jobs:
110
114
  CXX: arm-linux-gnueabihf-g++
111
115
  CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-g++
112
116
  steps:
113
- - uses: actions/checkout@v4
114
- - uses: actions/setup-python@v5
117
+ - uses: actions/checkout@v5
118
+ - uses: actions/setup-python@v6
115
119
  with:
116
120
  python-version: 3.x
117
121
  - name: Install LLVM and Clang
@@ -126,7 +130,7 @@ jobs:
126
130
  with:
127
131
  rust-toolchain: stable
128
132
  target: ${{ matrix.platform.target }}
129
- args: ${{ matrix.platform.target == 'x86_64' && '--release --out dist --zig' || '--release --out dist' }} ${{ env.MATURIIN_ARGS }} --features ${{ matrix.platform.allocator }}
133
+ args: ${{ matrix.platform.target == 'x86_64' && '--release --out dist --zig' || '--release --out dist' }} ${{ matrix.build_type.maturin_args }} --features ${{ matrix.platform.allocator }}
130
134
  sccache: 'false'
131
135
  manylinux: auto
132
136
  container: 'off'
@@ -134,7 +138,7 @@ jobs:
134
138
  - name: Upload wheels
135
139
  uses: actions/upload-artifact@v4
136
140
  with:
137
- name: wheels-linux-${{ matrix.platform.target }}
141
+ name: wheels-linux-${{ matrix.platform.target }}-${{ matrix.build_type.name }}
138
142
  path: dist
139
143
 
140
144
  musllinux:
@@ -142,6 +146,11 @@ jobs:
142
146
  environment: MuslLinux
143
147
  strategy:
144
148
  matrix:
149
+ build_type:
150
+ - name: standard
151
+ maturin_args: "--find-interpreter"
152
+ - name: free-threaded
153
+ maturin_args: "--interpreter 3.13t 3.14t"
145
154
  platform:
146
155
  - runner: ubuntu-22.04
147
156
  target: x86_64-unknown-linux-musl
@@ -156,14 +165,14 @@ jobs:
156
165
  target: i686-unknown-linux-musl
157
166
  allocator: jemalloc
158
167
  steps:
159
- - uses: actions/checkout@v4
168
+ - uses: actions/checkout@v5
160
169
  - name: Build wheels
161
170
  run:
162
- bash .github/musl_build.sh ${{ matrix.platform.target }} "${{ env.MATURIIN_ARGS }}" --features "${{ matrix.platform.allocator }}"
171
+ bash .github/musl_build.sh ${{ matrix.platform.target }} "${{ matrix.build_type.maturin_args }}" --features "${{ matrix.platform.allocator }}"
163
172
  - name: Upload wheels
164
173
  uses: actions/upload-artifact@v4
165
174
  with:
166
- name: wheels-musllinux-${{ matrix.platform.target }}
175
+ name: wheels-musllinux-${{ matrix.platform.target }}-${{ matrix.build_type.name }}
167
176
  path: dist
168
177
 
169
178
  windows:
@@ -171,6 +180,11 @@ jobs:
171
180
  environment: Windows
172
181
  strategy:
173
182
  matrix:
183
+ build_type:
184
+ - name: standard
185
+ maturin_args: "--find-interpreter"
186
+ - name: free-threaded
187
+ maturin_args: "--interpreter 3.13t 3.14t"
174
188
  platform:
175
189
  - runner: windows-latest
176
190
  target: x64
@@ -184,8 +198,8 @@ jobs:
184
198
  target: aarch64
185
199
  allocator: mimalloc
186
200
  steps:
187
- - uses: actions/checkout@v4
188
- - uses: actions/setup-python@v5
201
+ - uses: actions/checkout@v5
202
+ - uses: actions/setup-python@v6
189
203
  with:
190
204
  python-version: 3.x
191
205
  architecture: ${{ matrix.platform.python-architecture || 'x64' }}
@@ -196,13 +210,14 @@ jobs:
196
210
  - name: Build wheels
197
211
  uses: PyO3/maturin-action@v1
198
212
  with:
213
+ maturin-version: v1.9.4
199
214
  target: ${{ matrix.platform.target }}
200
- args: --release --out dist ${{ env.MATURIIN_ARGS }} --features ${{ matrix.platform.allocator || '' }}
201
- sccache: 'true'
215
+ args: --release --out dist ${{ matrix.build_type.maturin_args }} --features ${{ matrix.platform.allocator || '' }}
216
+ sccache: 'false'
202
217
  - name: Upload wheels
203
218
  uses: actions/upload-artifact@v4
204
219
  with:
205
- name: wheels-windows-${{ matrix.platform.target }}
220
+ name: wheels-windows-${{ matrix.platform.target }}-${{ matrix.build_type.name }}
206
221
  path: dist
207
222
 
208
223
  macos:
@@ -210,6 +225,11 @@ jobs:
210
225
  environment: MacOS
211
226
  strategy:
212
227
  matrix:
228
+ build_type:
229
+ - name: standard
230
+ maturin_args: "--find-interpreter"
231
+ - name: free-threaded
232
+ maturin_args: "--interpreter 3.13t 3.14t"
213
233
  platform:
214
234
  - runner: macos-13
215
235
  target: x86_64
@@ -218,8 +238,8 @@ jobs:
218
238
  target: aarch64
219
239
  allocator: jemalloc
220
240
  steps:
221
- - uses: actions/checkout@v4
222
- - uses: actions/setup-python@v5
241
+ - uses: actions/checkout@v5
242
+ - uses: actions/setup-python@v6
223
243
  with:
224
244
  python-version: 3.x
225
245
  - uses: actions-rs/toolchain@v1
@@ -230,18 +250,96 @@ jobs:
230
250
  uses: PyO3/maturin-action@v1
231
251
  with:
232
252
  target: ${{ matrix.platform.target }}
233
- args: --release --out dist ${{ env.MATURIIN_ARGS }} --features ${{ matrix.platform.allocator || '' }}
234
- sccache: 'true'
253
+ args: --release --out dist ${{ matrix.build_type.maturin_args }} --features ${{ matrix.platform.allocator || '' }}
254
+ sccache: 'false'
235
255
  - name: Upload wheels
236
256
  uses: actions/upload-artifact@v4
237
257
  with:
238
- name: wheels-macos-${{ matrix.platform.target }}
258
+ name: wheels-macos-${{ matrix.platform.target }}-${{ matrix.build_type.name }}
239
259
  path: dist
240
260
 
261
+ android:
262
+ name: Android
263
+ runs-on: ubuntu-latest
264
+ strategy:
265
+ matrix:
266
+ include:
267
+ - thing: arm64-android
268
+ target: aarch64-linux-android
269
+ arch: aarch64
270
+ python_version: 3.14.0
271
+ features: abi3-py314
272
+ - thing: x86_64-android
273
+ target: x86_64-linux-android
274
+ arch: x86_64
275
+ python_version: 3.14.0
276
+ features: abi3-py314
277
+
278
+ steps:
279
+ - uses: actions/checkout@v4
280
+ - uses: actions/setup-python@v6
281
+ with:
282
+ python-version: 3.x
283
+ - name: Set Android Linker path
284
+ if: endsWith(matrix.thing, '-android')
285
+ run: |
286
+ LINKER_PATH="$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/$(echo ${{ matrix.target }} | sed s/armv7/armv7a/)21-clang++"
287
+ echo "CARGO_TARGET_$(echo ${{ matrix.target }} | tr \\-a-z _A-Z)_LINKER=$LINKER_PATH" >> "$GITHUB_ENV"
288
+ echo "$PATH:$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin" >> "$GITHUB_PATH"
289
+ env
290
+ - name: Download and setup Android Python
291
+ run: |
292
+ wget https://www.python.org/ftp/python/${{ matrix.python_version }}/python-${{ matrix.python_version }}-${{ matrix.arch }}-linux-android.tar.gz
293
+
294
+ mkdir -p /tmp/python-android
295
+ tar -xzf python-${{ matrix.python_version }}-${{ matrix.arch }}-linux-android.tar.gz -C /tmp/python-android --strip-components=1
296
+
297
+ mv /tmp/python-android/prefix/lib /tmp/python-android/
298
+ mv /tmp/python-android/prefix/include /tmp/python-android/
299
+
300
+ echo "RUSTFLAGS=-L native=/tmp/python-android/lib" >> "$GITHUB_ENV"
301
+
302
+ echo "=== Root directory after move ==="
303
+ ls -la /tmp/python-android/
304
+ echo "=== Lib directory ==="
305
+ ls -la /tmp/python-android/lib/ | head -10
306
+ echo "=== Include directory ==="
307
+ ls -la /tmp/python-android/include/
308
+ - name: Build wheels
309
+ uses: PyO3/maturin-action@v1
310
+ with:
311
+ rust-toolchain: stable
312
+ target: ${{ matrix.target }}
313
+ args: --release --out dist --no-default-features --features ${{ matrix.features }} --skip-auditwheel
314
+ sccache: 'false'
315
+ container: 'off'
316
+ - name: Fix Android wheel platform tags
317
+ run: |
318
+ cd dist
319
+ for wheel in *.whl; do
320
+ case "$wheel" in
321
+ *linux_aarch64*)
322
+ new_wheel=${wheel/linux_aarch64/android_21_arm64_v8a}
323
+ mv "$wheel" "$new_wheel"
324
+ echo "Renamed: $wheel -> $new_wheel"
325
+ ;;
326
+ *linux_x86_64*)
327
+ new_wheel=${wheel/linux_x86_64/android_21_x86_64}
328
+ mv "$wheel" "$new_wheel"
329
+ echo "Renamed: $wheel -> $new_wheel"
330
+ ;;
331
+ esac
332
+ done
333
+ - name: Upload wheels
334
+ uses: actions/upload-artifact@v4
335
+ with:
336
+ name: wheels-android-${{ matrix.target }}
337
+ path: dist
338
+
241
339
  sdist:
242
340
  runs-on: ubuntu-latest
243
341
  steps:
244
- - uses: actions/checkout@v4
342
+ - uses: actions/checkout@v5
245
343
  - name: Build sdist
246
344
  uses: PyO3/maturin-action@v1
247
345
  with:
@@ -257,7 +355,7 @@ jobs:
257
355
  name: Release
258
356
  runs-on: ubuntu-latest
259
357
  if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
260
- needs: [manylinux, musllinux, windows, macos, sdist, tests, style]
358
+ needs: [manylinux, musllinux, windows, macos, android, sdist, tests, style]
261
359
  permissions:
262
360
  # Use to sign the release artifacts
263
361
  id-token: write
@@ -266,9 +364,9 @@ jobs:
266
364
  # Used to generate artifact attestation
267
365
  attestations: write
268
366
  steps:
269
- - uses: actions/download-artifact@v4
367
+ - uses: actions/download-artifact@v5
270
368
  - name: Generate artifact attestation
271
- uses: actions/attest-build-provenance@v1
369
+ uses: actions/attest-build-provenance@v3
272
370
  with:
273
371
  subject-path: 'wheels-*/*'
274
372
  - name: Publish to PyPI
@@ -414,9 +414,9 @@ checksum = "0399f9d26e5191ce32c498bebd31e7a3ceabc2745f0ac54af3f335126c3f24b3"
414
414
 
415
415
  [[package]]
416
416
  name = "flate2"
417
- version = "1.1.2"
417
+ version = "1.1.4"
418
418
  source = "registry+https://github.com/rust-lang/crates.io-index"
419
- checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
419
+ checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
420
420
  dependencies = [
421
421
  "crc32fast",
422
422
  "miniz_oxide",
@@ -979,11 +979,10 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
979
979
 
980
980
  [[package]]
981
981
  name = "lock_api"
982
- version = "0.4.13"
982
+ version = "0.4.14"
983
983
  source = "registry+https://github.com/rust-lang/crates.io-index"
984
- checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
984
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
985
985
  dependencies = [
986
- "autocfg",
987
986
  "scopeguard",
988
987
  ]
989
988
 
@@ -1046,6 +1045,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1046
1045
  checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
1047
1046
  dependencies = [
1048
1047
  "adler2",
1048
+ "simd-adler32",
1049
1049
  ]
1050
1050
 
1051
1051
  [[package]]
@@ -1125,9 +1125,9 @@ dependencies = [
1125
1125
 
1126
1126
  [[package]]
1127
1127
  name = "parking_lot"
1128
- version = "0.12.4"
1128
+ version = "0.12.5"
1129
1129
  source = "registry+https://github.com/rust-lang/crates.io-index"
1130
- checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
1130
+ checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
1131
1131
  dependencies = [
1132
1132
  "lock_api",
1133
1133
  "parking_lot_core",
@@ -1135,15 +1135,15 @@ dependencies = [
1135
1135
 
1136
1136
  [[package]]
1137
1137
  name = "parking_lot_core"
1138
- version = "0.9.11"
1138
+ version = "0.9.12"
1139
1139
  source = "registry+https://github.com/rust-lang/crates.io-index"
1140
- checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
1140
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
1141
1141
  dependencies = [
1142
1142
  "cfg-if",
1143
1143
  "libc",
1144
1144
  "redox_syscall",
1145
1145
  "smallvec",
1146
- "windows-targets 0.52.6",
1146
+ "windows-link",
1147
1147
  ]
1148
1148
 
1149
1149
  [[package]]
@@ -1328,9 +1328,9 @@ dependencies = [
1328
1328
 
1329
1329
  [[package]]
1330
1330
  name = "redox_syscall"
1331
- version = "0.5.17"
1331
+ version = "0.5.18"
1332
1332
  source = "registry+https://github.com/rust-lang/crates.io-index"
1333
- checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
1333
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
1334
1334
  dependencies = [
1335
1335
  "bitflags",
1336
1336
  ]
@@ -1386,7 +1386,7 @@ dependencies = [
1386
1386
 
1387
1387
  [[package]]
1388
1388
  name = "rnet"
1389
- version = "3.0.0-rc8"
1389
+ version = "3.0.0-rc9"
1390
1390
  dependencies = [
1391
1391
  "arc-swap",
1392
1392
  "bytes",
@@ -1541,6 +1541,12 @@ version = "1.3.0"
1541
1541
  source = "registry+https://github.com/rust-lang/crates.io-index"
1542
1542
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
1543
1543
 
1544
+ [[package]]
1545
+ name = "simd-adler32"
1546
+ version = "0.3.7"
1547
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1548
+ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
1549
+
1544
1550
  [[package]]
1545
1551
  name = "slab"
1546
1552
  version = "0.4.11"
@@ -1575,9 +1581,9 @@ dependencies = [
1575
1581
 
1576
1582
  [[package]]
1577
1583
  name = "stable_deref_trait"
1578
- version = "1.2.0"
1584
+ version = "1.2.1"
1579
1585
  source = "registry+https://github.com/rust-lang/crates.io-index"
1580
- checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
1586
+ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1581
1587
 
1582
1588
  [[package]]
1583
1589
  name = "strum"
@@ -2107,18 +2113,18 @@ dependencies = [
2107
2113
 
2108
2114
  [[package]]
2109
2115
  name = "webpki-root-certs"
2110
- version = "1.0.2"
2116
+ version = "1.0.3"
2111
2117
  source = "registry+https://github.com/rust-lang/crates.io-index"
2112
- checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a"
2118
+ checksum = "05d651ec480de84b762e7be71e6efa7461699c19d9e2c272c8d93455f567786e"
2113
2119
  dependencies = [
2114
2120
  "rustls-pki-types",
2115
2121
  ]
2116
2122
 
2117
2123
  [[package]]
2118
2124
  name = "widestring"
2119
- version = "1.2.0"
2125
+ version = "1.2.1"
2120
2126
  source = "registry+https://github.com/rust-lang/crates.io-index"
2121
- checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d"
2127
+ checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471"
2122
2128
 
2123
2129
  [[package]]
2124
2130
  name = "winapi"
@@ -2144,9 +2150,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
2144
2150
 
2145
2151
  [[package]]
2146
2152
  name = "windows-link"
2147
- version = "0.2.0"
2153
+ version = "0.2.1"
2148
2154
  source = "registry+https://github.com/rust-lang/crates.io-index"
2149
- checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
2155
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
2150
2156
 
2151
2157
  [[package]]
2152
2158
  name = "windows-sys"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rnet"
3
- version = "3.0.0-rc8"
3
+ version = "3.0.0-rc9"
4
4
  description = "A blazing-fast Python HTTP client with TLS fingerprint"
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -16,12 +16,13 @@ crate-type = ["cdylib"]
16
16
  doctest = false
17
17
 
18
18
  [features]
19
- default = ["abi3"]
19
+ default = ["abi3-py311"]
20
20
  jemalloc = ["dep:tikv-jemallocator"]
21
21
  mimalloc = ["dep:mimalloc"]
22
22
 
23
23
  # we build cp311-abi3 and cp310 wheels now, move this to pyo3 after we drop cp310
24
- abi3 = ["pyo3/abi3-py311"]
24
+ abi3-py311 = ["pyo3/abi3-py311"]
25
+ abi3-py314 = ["pyo3/abi3-py314"]
25
26
 
26
27
  [dependencies]
27
28
  tokio = { version = "1.47.1", features = ["sync", "rt", "rt-multi-thread", "time"]}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rnet
3
- Version: 3.0.0rc8
3
+ Version: 3.0.0rc9
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -59,7 +59,7 @@ A blazing-fast Python HTTP client with advanced browser fingerprinting that accu
59
59
  The following example uses the `asyncio` runtime with `rnet` installed via pip:
60
60
 
61
61
  ```bash
62
- pip install asyncio rnet==3.0.0rc8
62
+ pip install asyncio rnet==3.0.0-rc9
63
63
  ```
64
64
 
65
65
  And then the code:
@@ -129,6 +129,8 @@ Additional learning resources include:
129
129
 
130
130
  3. Windows: `x86_64`,`i686`,`aarch64`
131
131
 
132
+ 4. Android: `aarch64`, `x86_64`
133
+
132
134
  ## Building
133
135
 
134
136
  1. Development
@@ -31,7 +31,7 @@ A blazing-fast Python HTTP client with advanced browser fingerprinting that accu
31
31
  The following example uses the `asyncio` runtime with `rnet` installed via pip:
32
32
 
33
33
  ```bash
34
- pip install asyncio rnet==3.0.0rc8
34
+ pip install asyncio rnet==3.0.0-rc9
35
35
  ```
36
36
 
37
37
  And then the code:
@@ -101,6 +101,8 @@ Additional learning resources include:
101
101
 
102
102
  3. Windows: `x86_64`,`i686`,`aarch64`
103
103
 
104
+ 4. Android: `aarch64`, `x86_64`
105
+
104
106
  ## Building
105
107
 
106
108
  1. Development
@@ -1,11 +0,0 @@
1
- # To get started with Dependabot version updates, you'll need to specify which
2
- # package ecosystems to update and where the package manifests are located.
3
- # Please see the documentation for all configuration options:
4
- # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
-
6
- version: 2
7
- updates:
8
- - package-ecosystem: "cargo" # See documentation for possible values
9
- directory: "/" # Location of package manifests
10
- schedule:
11
- interval: "weekly"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes