httpr 0.4.8__tar.gz → 0.6.0__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.
Files changed (78) hide show
  1. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/CI.yml +29 -90
  2. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/benchmark.yml +2 -2
  3. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/copilot-setup-steps.yml +3 -3
  4. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/mkdocs.yml +2 -11
  5. {httpr-0.4.8 → httpr-0.6.0}/CLAUDE.md +2 -1
  6. {httpr-0.4.8 → httpr-0.6.0}/Cargo.lock +76 -93
  7. {httpr-0.4.8 → httpr-0.6.0}/Cargo.toml +5 -5
  8. {httpr-0.4.8 → httpr-0.6.0}/PKG-INFO +27 -10
  9. {httpr-0.4.8 → httpr-0.6.0}/README.md +23 -5
  10. {httpr-0.4.8 → httpr-0.6.0}/benchmark/benchmark.py +3 -3
  11. {httpr-0.4.8 → httpr-0.6.0}/benchmark/benchmark_cbor.py +1 -1
  12. {httpr-0.4.8 → httpr-0.6.0}/benchmark/server.py +2 -1
  13. {httpr-0.4.8 → httpr-0.6.0}/docs/api/index.md +4 -0
  14. {httpr-0.4.8 → httpr-0.6.0}/docs/api/response.md +101 -0
  15. {httpr-0.4.8 → httpr-0.6.0}/docs/tutorial/making-requests.md +12 -3
  16. {httpr-0.4.8 → httpr-0.6.0}/docs/tutorial/response-handling.md +47 -11
  17. {httpr-0.4.8 → httpr-0.6.0}/httpr/__init__.py +96 -7
  18. {httpr-0.4.8 → httpr-0.6.0}/httpr/httpr.pyi +97 -3
  19. {httpr-0.4.8 → httpr-0.6.0}/pyproject.toml +5 -5
  20. {httpr-0.4.8 → httpr-0.6.0}/src/exceptions.rs +1 -1
  21. {httpr-0.4.8 → httpr-0.6.0}/src/lib.rs +23 -0
  22. {httpr-0.4.8 → httpr-0.6.0}/src/response.rs +150 -2
  23. {httpr-0.4.8 → httpr-0.6.0}/tests/benchmark/test_performance.py +32 -3
  24. httpr-0.6.0/tests/unit/test_asyncclient.py +111 -0
  25. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_client.py +45 -0
  26. httpr-0.6.0/tests/unit/test_response.py +69 -0
  27. {httpr-0.4.8 → httpr-0.6.0}/uv.lock +150 -1026
  28. httpr-0.4.8/benchmark/generate_image.py +0 -149
  29. httpr-0.4.8/tests/unit/test_asyncclient.py +0 -25
  30. {httpr-0.4.8 → httpr-0.6.0}/.github/actions/set-version/action.yml +0 -0
  31. {httpr-0.4.8 → httpr-0.6.0}/.github/copilot-instructions.md +0 -0
  32. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/CI.yml.backup +0 -0
  33. {httpr-0.4.8 → httpr-0.6.0}/.github/workflows/set_version.py +0 -0
  34. {httpr-0.4.8 → httpr-0.6.0}/.gitignore +0 -0
  35. {httpr-0.4.8 → httpr-0.6.0}/.pre-commit-config.yaml +0 -0
  36. {httpr-0.4.8 → httpr-0.6.0}/LICENSE +0 -0
  37. {httpr-0.4.8 → httpr-0.6.0}/Taskfile.yaml +0 -0
  38. {httpr-0.4.8 → httpr-0.6.0}/benchmark/README.md +0 -0
  39. {httpr-0.4.8 → httpr-0.6.0}/benchmark/__init__.py +0 -0
  40. {httpr-0.4.8 → httpr-0.6.0}/benchmark.jpg +0 -0
  41. {httpr-0.4.8 → httpr-0.6.0}/docs/advanced/cookies.md +0 -0
  42. {httpr-0.4.8 → httpr-0.6.0}/docs/advanced/index.md +0 -0
  43. {httpr-0.4.8 → httpr-0.6.0}/docs/advanced/proxy.md +0 -0
  44. {httpr-0.4.8 → httpr-0.6.0}/docs/advanced/ssl-tls.md +0 -0
  45. {httpr-0.4.8 → httpr-0.6.0}/docs/api/async-client.md +0 -0
  46. {httpr-0.4.8 → httpr-0.6.0}/docs/api/client.md +0 -0
  47. {httpr-0.4.8 → httpr-0.6.0}/docs/api/functions.md +0 -0
  48. {httpr-0.4.8 → httpr-0.6.0}/docs/index.md +0 -0
  49. {httpr-0.4.8 → httpr-0.6.0}/docs/quickstart.md +0 -0
  50. {httpr-0.4.8 → httpr-0.6.0}/docs/tutorial/async.md +0 -0
  51. {httpr-0.4.8 → httpr-0.6.0}/docs/tutorial/authentication.md +0 -0
  52. {httpr-0.4.8 → httpr-0.6.0}/docs/tutorial/index.md +0 -0
  53. {httpr-0.4.8 → httpr-0.6.0}/docs/writings/index.md +0 -0
  54. {httpr-0.4.8 → httpr-0.6.0}/docs/writings/posts/2025-02-24-python-http-clients-suck.md +0 -0
  55. {httpr-0.4.8 → httpr-0.6.0}/httpr/py.typed +0 -0
  56. {httpr-0.4.8 → httpr-0.6.0}/httpr.code-workspace +0 -0
  57. {httpr-0.4.8 → httpr-0.6.0}/mkdocs.yml +0 -0
  58. {httpr-0.4.8 → httpr-0.6.0}/scripts/generate_certs.py +0 -0
  59. {httpr-0.4.8 → httpr-0.6.0}/src/traits.rs +0 -0
  60. {httpr-0.4.8 → httpr-0.6.0}/src/utils.rs +0 -0
  61. {httpr-0.4.8 → httpr-0.6.0}/tests/benchmark/__init__.py +0 -0
  62. {httpr-0.4.8 → httpr-0.6.0}/tests/conftest.py +0 -0
  63. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/__init__.py +0 -0
  64. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_async.py +0 -0
  65. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_auth.py +0 -0
  66. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_redirects.py +0 -0
  67. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_ssl.py +0 -0
  68. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_streaming.py +0 -0
  69. {httpr-0.4.8 → httpr-0.6.0}/tests/e2e/test_uploads.py +0 -0
  70. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/__init__.py +0 -0
  71. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/cbor_test_server.py +0 -0
  72. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/httpx_conns.py +0 -0
  73. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_cbor.py +0 -0
  74. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_defs.py +0 -0
  75. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_docs.py +0 -0
  76. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_exceptions.py +0 -0
  77. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_ssl.py +0 -0
  78. {httpr-0.4.8 → httpr-0.6.0}/tests/unit/test_streaming.py +0 -0
@@ -4,8 +4,6 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
- paths-ignore:
8
- - "*.jpg" # Prevents the benchmark image update from triggering CI
9
7
  tags:
10
8
  - "*"
11
9
  pull_request:
@@ -20,7 +18,7 @@ jobs:
20
18
  runs-on: ubuntu-22.04
21
19
  if: github.event_name == 'pull_request'
22
20
  steps:
23
- - uses: actions/checkout@v4
21
+ - uses: actions/checkout@v5
24
22
  - uses: astral-sh/setup-uv@v7
25
23
  with:
26
24
  python-version: "3.12"
@@ -39,16 +37,16 @@ jobs:
39
37
  PYO3_USE_ABI3_FORWARD_COMPATIBILITY: "1"
40
38
  strategy:
41
39
  matrix:
42
- python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
40
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
43
41
  steps:
44
- - uses: actions/checkout@v4
45
- - uses: actions/setup-python@v5
42
+ - uses: actions/checkout@v5
43
+ - uses: actions/setup-python@v6
46
44
  with:
47
45
  python-version: ${{ matrix.python-version }}
48
46
  allow-prereleases: true
49
47
  - uses: astral-sh/setup-uv@v7
50
48
  - name: Cache Rust build
51
- uses: actions/cache@v4
49
+ uses: actions/cache@v5
52
50
  with:
53
51
  path: |
54
52
  ~/.cargo/registry
@@ -69,12 +67,12 @@ jobs:
69
67
  runs-on: ubuntu-22.04
70
68
  if: github.event_name == 'pull_request' || (github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')))
71
69
  steps:
72
- - uses: actions/checkout@v4
70
+ - uses: actions/checkout@v5
73
71
  - uses: astral-sh/setup-uv@v7
74
72
  with:
75
73
  python-version: "3.12"
76
74
  - name: Cache Rust build
77
- uses: actions/cache@v4
75
+ uses: actions/cache@v5
78
76
  with:
79
77
  path: |
80
78
  ~/.cargo/registry
@@ -127,7 +125,7 @@ jobs:
127
125
  runs-on: ubuntu-latest
128
126
  if: github.event_name == 'pull_request'
129
127
  steps:
130
- - uses: actions/checkout@v4
128
+ - uses: actions/checkout@v5
131
129
  - uses: astral-sh/setup-uv@v7
132
130
  with:
133
131
  python-version: "3.12"
@@ -157,7 +155,7 @@ jobs:
157
155
  # - runner: ubuntu-22.04
158
156
  # target: ppc64le
159
157
  steps:
160
- - uses: actions/checkout@v4
158
+ - uses: actions/checkout@v5
161
159
  - uses: astral-sh/setup-uv@v7
162
160
  with:
163
161
  python-version: "3.12"
@@ -176,11 +174,11 @@ jobs:
176
174
  uses: PyO3/maturin-action@v1
177
175
  with:
178
176
  target: ${{ matrix.platform.target }}
179
- args: --release --out dist -i python3.13t -i python3.14t
177
+ args: --release --out dist -i python3.14t
180
178
  sccache: true
181
179
  manylinux: auto
182
180
  - name: Upload wheels
183
- uses: actions/upload-artifact@v4
181
+ uses: actions/upload-artifact@v6
184
182
  with:
185
183
  name: wheels-linux-${{ matrix.platform.target }}
186
184
  path: dist
@@ -212,7 +210,7 @@ jobs:
212
210
  # - runner: ubuntu-22.04
213
211
  # target: armv7
214
212
  steps:
215
- - uses: actions/checkout@v4
213
+ - uses: actions/checkout@v5
216
214
  - uses: astral-sh/setup-uv@v7
217
215
  with:
218
216
  python-version: "3.12"
@@ -231,11 +229,11 @@ jobs:
231
229
  uses: PyO3/maturin-action@v1
232
230
  with:
233
231
  target: ${{ matrix.platform.target }}
234
- args: --release --out dist -i python3.13t -i python3.14t
232
+ args: --release --out dist -i python3.14t
235
233
  sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
236
234
  manylinux: musllinux_1_2
237
235
  - name: Upload wheels
238
- uses: actions/upload-artifact@v4
236
+ uses: actions/upload-artifact@v6
239
237
  with:
240
238
  name: wheels-musllinux-${{ matrix.platform.target }}
241
239
  path: dist
@@ -265,8 +263,8 @@ jobs:
265
263
  - runner: windows-latest
266
264
  target: x86
267
265
  steps:
268
- - uses: actions/checkout@v4
269
- - uses: actions/setup-python@v5
266
+ - uses: actions/checkout@v5
267
+ - uses: actions/setup-python@v6
270
268
  with:
271
269
  python-version: "3.12"
272
270
  architecture: ${{ matrix.platform.target }}
@@ -287,14 +285,18 @@ jobs:
287
285
  uses: PyO3/maturin-action@v1
288
286
  with:
289
287
  target: ${{ matrix.platform.target }}
290
- args: --release --out dist -i python3.13t -i python3.14t
288
+ args: --release --out dist -i python3.14t
291
289
  sccache: true
292
290
  - name: Upload wheels
293
- uses: actions/upload-artifact@v4
291
+ uses: actions/upload-artifact@v6
294
292
  with:
295
293
  name: wheels-windows-${{ matrix.platform.target }}
296
294
  path: dist
297
295
  - name: pytest
296
+ # Skip pytest on x86 - cryptography (pulled in via the trustme dev
297
+ # dependency) no longer ships 32-bit Windows wheels and fails to build
298
+ # from source. The x64 job provides test coverage for Windows.
299
+ if: ${{ matrix.platform.target == 'x64' }}
298
300
  shell: bash
299
301
  env:
300
302
  RUSTC_WRAPPER: ""
@@ -315,7 +317,7 @@ jobs:
315
317
  - runner: macos-14
316
318
  target: aarch64
317
319
  steps:
318
- - uses: actions/checkout@v4
320
+ - uses: actions/checkout@v5
319
321
  - uses: astral-sh/setup-uv@v7
320
322
  with:
321
323
  python-version: "3.12"
@@ -333,10 +335,10 @@ jobs:
333
335
  uses: PyO3/maturin-action@v1
334
336
  with:
335
337
  target: ${{ matrix.platform.target }}
336
- args: --release --out dist -i python3.13t -i python3.14t
338
+ args: --release --out dist -i python3.14t
337
339
  sccache: true
338
340
  - name: Upload wheels
339
- uses: actions/upload-artifact@v4
341
+ uses: actions/upload-artifact@v6
340
342
  with:
341
343
  name: wheels-macos-${{ matrix.platform.target }}
342
344
  path: dist
@@ -353,7 +355,7 @@ jobs:
353
355
  needs: [test, e2e]
354
356
  if: ${{ always() && (startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch') && (needs.test.result == 'success' || needs.test.result == 'skipped') && (needs.e2e.result == 'success' || needs.e2e.result == 'skipped') }}
355
357
  steps:
356
- - uses: actions/checkout@v4
358
+ - uses: actions/checkout@v5
357
359
  - uses: astral-sh/setup-uv@v7
358
360
  with:
359
361
  python-version: "3.12"
@@ -367,7 +369,7 @@ jobs:
367
369
  command: sdist
368
370
  args: --out dist
369
371
  - name: Upload sdist
370
- uses: actions/upload-artifact@v4
372
+ uses: actions/upload-artifact@v6
371
373
  with:
372
374
  name: wheels-sdist
373
375
  path: dist
@@ -387,9 +389,9 @@ jobs:
387
389
  # Used to generate artifact attestation
388
390
  attestations: write
389
391
  steps:
390
- - uses: actions/download-artifact@v4
392
+ - uses: actions/download-artifact@v7
391
393
  - name: Generate artifact attestation
392
- uses: actions/attest-build-provenance@v2
394
+ uses: actions/attest-build-provenance@v3
393
395
  with:
394
396
  subject-path: "wheels-*/*"
395
397
  - name: Publish to PyPI
@@ -401,66 +403,3 @@ jobs:
401
403
  with:
402
404
  command: upload
403
405
  args: --non-interactive --skip-existing wheels-*/*
404
-
405
- benchmark:
406
- permissions:
407
- contents: write
408
- runs-on: ubuntu-latest
409
- needs: [linux]
410
- if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
411
- steps:
412
- - uses: actions/checkout@v4
413
- with:
414
- fetch-depth: 0
415
- - uses: astral-sh/setup-uv@v7
416
- with:
417
- python-version: "3.12"
418
- - name: Download wheels
419
- uses: actions/download-artifact@v4
420
- with:
421
- name: wheels-linux-x86_64
422
- - name: Start Uvicorn server
423
- env:
424
- BENCHMARK_HOST: 0.0.0.0
425
- BENCHMARK_PORT: "8000"
426
- run: |
427
- uv run --script benchmark/server.py &
428
- sleep 10
429
- - name: Run benchmark
430
- run: |
431
- # Extract version from tag (v0.3.0 -> 0.3.0) or use 'dev' for manual runs
432
- if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
433
- HTTPR_VERSION=${GITHUB_REF#refs/tags/v}
434
- else
435
- HTTPR_VERSION="dev"
436
- fi
437
- # The script declares `httpr` in its PEP 723 deps; --find-links lets uv
438
- # pick the freshly-built wheel from the workspace instead of PyPI.
439
- uv run \
440
- --find-links ./ \
441
- --refresh-package httpr \
442
- --script benchmark/benchmark.py --httpr-version "$HTTPR_VERSION"
443
- - name: Generate and deploy benchmark image to gh-pages
444
- if: startsWith(github.ref, 'refs/tags/')
445
- run: |
446
- uv run --script benchmark/generate_image.py
447
- git config --global user.name 'github-actions[bot]'
448
- git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
449
-
450
- # Save the generated image
451
- cp benchmark.jpg /tmp/benchmark.jpg
452
-
453
- # Fetch and checkout gh-pages
454
- git fetch origin gh-pages:gh-pages
455
- git checkout gh-pages
456
-
457
- # Copy the benchmark image
458
- cp /tmp/benchmark.jpg benchmark.jpg
459
-
460
- git add benchmark.jpg
461
- if ! git diff --quiet --cached; then
462
- git commit -m "Update benchmark image for ${{ github.ref_name }}"
463
- git push origin gh-pages
464
- else
465
- echo "No changes to commit"
466
- fi
@@ -19,14 +19,14 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
21
21
  steps:
22
- - uses: actions/checkout@v4
22
+ - uses: actions/checkout@v5
23
23
 
24
24
  - uses: astral-sh/setup-uv@v7
25
25
  with:
26
26
  python-version: "3.12"
27
27
 
28
28
  - name: Cache Rust build
29
- uses: actions/cache@v4
29
+ uses: actions/cache@v5
30
30
  with:
31
31
  path: |
32
32
  ~/.cargo/registry
@@ -28,7 +28,7 @@ jobs:
28
28
  uses: actions/checkout@v5
29
29
 
30
30
  - name: Cache Rust build artifacts
31
- uses: actions/cache@v4
31
+ uses: actions/cache@v5
32
32
  with:
33
33
  path: |
34
34
  ~/.cargo/bin/
@@ -46,12 +46,12 @@ jobs:
46
46
  components: rustfmt, clippy
47
47
 
48
48
  - name: Set up Python
49
- uses: actions/setup-python@v5
49
+ uses: actions/setup-python@v6
50
50
  with:
51
51
  python-version: "3.12"
52
52
 
53
53
  - name: Install uv
54
- uses: astral-sh/setup-uv@v5
54
+ uses: astral-sh/setup-uv@v7
55
55
  with:
56
56
  enable-cache: true
57
57
 
@@ -10,7 +10,7 @@ jobs:
10
10
  deploy:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v4
13
+ - uses: actions/checkout@v5
14
14
  with:
15
15
  fetch-depth: 0
16
16
  - name: Configure Git Credentials
@@ -22,7 +22,7 @@ jobs:
22
22
  python-version: "3.12"
23
23
  enable-cache: false
24
24
  - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
25
- - uses: actions/cache@v4
25
+ - uses: actions/cache@v5
26
26
  with:
27
27
  key: mkdocs-material-${{ env.cache_id }}
28
28
  path: .cache
@@ -50,10 +50,6 @@ jobs:
50
50
  if git show gh-pages:dev/bench/index.html > /tmp/bench-backup/index.html 2>/dev/null; then
51
51
  echo "Found existing benchmark index.html, will preserve it"
52
52
  fi
53
- # Save benchmark image if it exists
54
- if git show gh-pages:benchmark.jpg > /tmp/bench-backup/benchmark.jpg 2>/dev/null; then
55
- echo "Found existing benchmark.jpg, will preserve it"
56
- fi
57
53
 
58
54
  # Switch to gh-pages branch
59
55
  git checkout gh-pages || git checkout --orphan gh-pages
@@ -75,11 +71,6 @@ jobs:
75
71
  [ -f /tmp/bench-backup/index.html ] && cp /tmp/bench-backup/index.html dev/bench/
76
72
  echo "Restored benchmark chart files"
77
73
  fi
78
- # Restore benchmark image if it existed
79
- if [ -f /tmp/bench-backup/benchmark.jpg ]; then
80
- cp /tmp/bench-backup/benchmark.jpg benchmark.jpg
81
- echo "Restored benchmark.jpg"
82
- fi
83
74
 
84
75
  # Add all files and commit
85
76
  git add -A
@@ -151,7 +151,8 @@ uv run python benchmark.py # Terminal 2: Run benchmarks
151
151
 
152
152
  ### Headers Behavior
153
153
  - Headers are lowercased internally (HTTP/2 spec)
154
- - `client.headers` getter excludes `Cookie` header
154
+ - `client.headers` getter returns a live `_ClientHeaders` view; in-place mutations (`__setitem__`, `del`, `update`, `pop`, `popitem`, `setdefault`, `clear`) mirror to the client via Rust `set_header`/`del_header`
155
+ - `client.headers` getter excludes `Cookie` header; `set_headers` preserves the existing `Cookie` header so header mutation never clobbers cookies
155
156
  - `client.cookies` getter/setter extracts from `Cookie` header
156
157
 
157
158
  ### Request Body
@@ -25,9 +25,9 @@ dependencies = [
25
25
 
26
26
  [[package]]
27
27
  name = "anyhow"
28
- version = "1.0.102"
28
+ version = "1.0.103"
29
29
  source = "registry+https://github.com/rust-lang/crates.io-index"
30
- checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
30
+ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
31
31
 
32
32
  [[package]]
33
33
  name = "arc-swap"
@@ -56,12 +56,6 @@ version = "1.1.2"
56
56
  source = "registry+https://github.com/rust-lang/crates.io-index"
57
57
  checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
58
58
 
59
- [[package]]
60
- name = "autocfg"
61
- version = "1.5.0"
62
- source = "registry+https://github.com/rust-lang/crates.io-index"
63
- checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
64
-
65
59
  [[package]]
66
60
  name = "base64"
67
61
  version = "0.22.1"
@@ -131,6 +125,17 @@ version = "0.2.1"
131
125
  source = "registry+https://github.com/rust-lang/crates.io-index"
132
126
  checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
133
127
 
128
+ [[package]]
129
+ name = "chacha20"
130
+ version = "0.10.1"
131
+ source = "registry+https://github.com/rust-lang/crates.io-index"
132
+ checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
133
+ dependencies = [
134
+ "cfg-if",
135
+ "cpufeatures",
136
+ "rand_core 0.10.1",
137
+ ]
138
+
134
139
  [[package]]
135
140
  name = "compression-codecs"
136
141
  version = "0.4.38"
@@ -180,6 +185,15 @@ dependencies = [
180
185
  "url",
181
186
  ]
182
187
 
188
+ [[package]]
189
+ name = "cpufeatures"
190
+ version = "0.3.0"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
193
+ dependencies = [
194
+ "libc",
195
+ ]
196
+
183
197
  [[package]]
184
198
  name = "crc32fast"
185
199
  version = "1.5.0"
@@ -376,10 +390,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
376
390
  checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
377
391
  dependencies = [
378
392
  "cfg-if",
379
- "js-sys",
380
393
  "libc",
381
- "r-efi",
394
+ "r-efi 5.3.0",
382
395
  "wasip2",
396
+ ]
397
+
398
+ [[package]]
399
+ name = "getrandom"
400
+ version = "0.4.3"
401
+ source = "registry+https://github.com/rust-lang/crates.io-index"
402
+ checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
403
+ dependencies = [
404
+ "cfg-if",
405
+ "js-sys",
406
+ "libc",
407
+ "r-efi 6.0.0",
408
+ "rand_core 0.10.1",
383
409
  "wasm-bindgen",
384
410
  ]
385
411
 
@@ -492,7 +518,7 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
492
518
 
493
519
  [[package]]
494
520
  name = "httpr"
495
- version = "0.4.8"
521
+ version = "0.6.0"
496
522
  dependencies = [
497
523
  "anyhow",
498
524
  "bytes",
@@ -688,15 +714,6 @@ dependencies = [
688
714
  "serde_core",
689
715
  ]
690
716
 
691
- [[package]]
692
- name = "indoc"
693
- version = "2.0.7"
694
- source = "registry+https://github.com/rust-lang/crates.io-index"
695
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
696
- dependencies = [
697
- "rustversion",
698
- ]
699
-
700
717
  [[package]]
701
718
  name = "ipnet"
702
719
  version = "2.12.0"
@@ -807,15 +824,6 @@ version = "2.8.0"
807
824
  source = "registry+https://github.com/rust-lang/crates.io-index"
808
825
  checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
809
826
 
810
- [[package]]
811
- name = "memoffset"
812
- version = "0.9.1"
813
- source = "registry+https://github.com/rust-lang/crates.io-index"
814
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
815
- dependencies = [
816
- "autocfg",
817
- ]
818
-
819
827
  [[package]]
820
828
  name = "mime"
821
829
  version = "0.3.17"
@@ -987,15 +995,6 @@ version = "0.2.0"
987
995
  source = "registry+https://github.com/rust-lang/crates.io-index"
988
996
  checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
989
997
 
990
- [[package]]
991
- name = "ppv-lite86"
992
- version = "0.2.21"
993
- source = "registry+https://github.com/rust-lang/crates.io-index"
994
- checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
995
- dependencies = [
996
- "zerocopy",
997
- ]
998
-
999
998
  [[package]]
1000
999
  name = "precomputed-hash"
1001
1000
  version = "0.1.1"
@@ -1029,38 +1028,34 @@ dependencies = [
1029
1028
 
1030
1029
  [[package]]
1031
1030
  name = "pyo3"
1032
- version = "0.27.2"
1031
+ version = "0.29.0"
1033
1032
  source = "registry+https://github.com/rust-lang/crates.io-index"
1034
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
1033
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
1035
1034
  dependencies = [
1036
1035
  "anyhow",
1037
1036
  "indexmap",
1038
- "indoc",
1039
1037
  "libc",
1040
- "memoffset",
1041
1038
  "once_cell",
1042
1039
  "portable-atomic",
1043
1040
  "pyo3-build-config",
1044
1041
  "pyo3-ffi",
1045
1042
  "pyo3-macros",
1046
- "unindent",
1047
1043
  ]
1048
1044
 
1049
1045
  [[package]]
1050
1046
  name = "pyo3-build-config"
1051
- version = "0.27.2"
1047
+ version = "0.29.0"
1052
1048
  source = "registry+https://github.com/rust-lang/crates.io-index"
1053
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
1049
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
1054
1050
  dependencies = [
1055
- "python3-dll-a",
1056
1051
  "target-lexicon",
1057
1052
  ]
1058
1053
 
1059
1054
  [[package]]
1060
1055
  name = "pyo3-ffi"
1061
- version = "0.27.2"
1056
+ version = "0.29.0"
1062
1057
  source = "registry+https://github.com/rust-lang/crates.io-index"
1063
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
1058
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
1064
1059
  dependencies = [
1065
1060
  "libc",
1066
1061
  "pyo3-build-config",
@@ -1068,9 +1063,9 @@ dependencies = [
1068
1063
 
1069
1064
  [[package]]
1070
1065
  name = "pyo3-log"
1071
- version = "0.13.3"
1066
+ version = "0.13.4"
1072
1067
  source = "registry+https://github.com/rust-lang/crates.io-index"
1073
- checksum = "26c2ec80932c5c3b2d4fbc578c9b56b2d4502098587edb8bef5b6bfcad43682e"
1068
+ checksum = "f64083bd3a16a353d9d62335808e8e13d0552d2a2b83fdb084496192dcfa9fcd"
1074
1069
  dependencies = [
1075
1070
  "arc-swap",
1076
1071
  "log",
@@ -1079,9 +1074,9 @@ dependencies = [
1079
1074
 
1080
1075
  [[package]]
1081
1076
  name = "pyo3-macros"
1082
- version = "0.27.2"
1077
+ version = "0.29.0"
1083
1078
  source = "registry+https://github.com/rust-lang/crates.io-index"
1084
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
1079
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
1085
1080
  dependencies = [
1086
1081
  "proc-macro2",
1087
1082
  "pyo3-macros-backend",
@@ -1091,31 +1086,21 @@ dependencies = [
1091
1086
 
1092
1087
  [[package]]
1093
1088
  name = "pyo3-macros-backend"
1094
- version = "0.27.2"
1089
+ version = "0.29.0"
1095
1090
  source = "registry+https://github.com/rust-lang/crates.io-index"
1096
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
1091
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
1097
1092
  dependencies = [
1098
1093
  "heck",
1099
1094
  "proc-macro2",
1100
- "pyo3-build-config",
1101
1095
  "quote",
1102
1096
  "syn",
1103
1097
  ]
1104
1098
 
1105
- [[package]]
1106
- name = "python3-dll-a"
1107
- version = "0.2.15"
1108
- source = "registry+https://github.com/rust-lang/crates.io-index"
1109
- checksum = "d80ba7540edb18890d444c5aa8e1f1f99b1bdf26fb26ae383135325f4a36042b"
1110
- dependencies = [
1111
- "cc",
1112
- ]
1113
-
1114
1099
  [[package]]
1115
1100
  name = "pythonize"
1116
- version = "0.27.0"
1101
+ version = "0.29.0"
1117
1102
  source = "registry+https://github.com/rust-lang/crates.io-index"
1118
- checksum = "a3a8f29db331e28c332c63496cfcbb822aca3d7320bc08b655d7fd0c29c50ede"
1103
+ checksum = "6ec376e1216e0c929a74964ce2020012a1a39f32d80e78aa688721219ea7fb89"
1119
1104
  dependencies = [
1120
1105
  "pyo3",
1121
1106
  "serde",
@@ -1143,14 +1128,15 @@ dependencies = [
1143
1128
 
1144
1129
  [[package]]
1145
1130
  name = "quinn-proto"
1146
- version = "0.11.14"
1131
+ version = "0.11.16"
1147
1132
  source = "registry+https://github.com/rust-lang/crates.io-index"
1148
- checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
1133
+ checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560"
1149
1134
  dependencies = [
1150
1135
  "bytes",
1151
- "getrandom 0.3.4",
1136
+ "getrandom 0.4.3",
1152
1137
  "lru-slab",
1153
- "rand 0.9.4",
1138
+ "rand 0.10.2",
1139
+ "rand_pcg",
1154
1140
  "ring",
1155
1141
  "rustc-hash",
1156
1142
  "rustls",
@@ -1191,6 +1177,12 @@ version = "5.3.0"
1191
1177
  source = "registry+https://github.com/rust-lang/crates.io-index"
1192
1178
  checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
1193
1179
 
1180
+ [[package]]
1181
+ name = "r-efi"
1182
+ version = "6.0.0"
1183
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1184
+ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
1185
+
1194
1186
  [[package]]
1195
1187
  name = "rand"
1196
1188
  version = "0.8.6"
@@ -1202,22 +1194,13 @@ dependencies = [
1202
1194
 
1203
1195
  [[package]]
1204
1196
  name = "rand"
1205
- version = "0.9.4"
1206
- source = "registry+https://github.com/rust-lang/crates.io-index"
1207
- checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
1208
- dependencies = [
1209
- "rand_chacha",
1210
- "rand_core 0.9.5",
1211
- ]
1212
-
1213
- [[package]]
1214
- name = "rand_chacha"
1215
- version = "0.9.0"
1197
+ version = "0.10.2"
1216
1198
  source = "registry+https://github.com/rust-lang/crates.io-index"
1217
- checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1199
+ checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
1218
1200
  dependencies = [
1219
- "ppv-lite86",
1220
- "rand_core 0.9.5",
1201
+ "chacha20",
1202
+ "getrandom 0.4.3",
1203
+ "rand_core 0.10.1",
1221
1204
  ]
1222
1205
 
1223
1206
  [[package]]
@@ -1228,11 +1211,17 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1228
1211
 
1229
1212
  [[package]]
1230
1213
  name = "rand_core"
1231
- version = "0.9.5"
1214
+ version = "0.10.1"
1232
1215
  source = "registry+https://github.com/rust-lang/crates.io-index"
1233
- checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
1216
+ checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
1217
+
1218
+ [[package]]
1219
+ name = "rand_pcg"
1220
+ version = "0.10.2"
1221
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1222
+ checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
1234
1223
  dependencies = [
1235
- "getrandom 0.3.4",
1224
+ "rand_core 0.10.1",
1236
1225
  ]
1237
1226
 
1238
1227
  [[package]]
@@ -1803,12 +1792,6 @@ version = "0.2.2"
1803
1792
  source = "registry+https://github.com/rust-lang/crates.io-index"
1804
1793
  checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
1805
1794
 
1806
- [[package]]
1807
- name = "unindent"
1808
- version = "0.2.4"
1809
- source = "registry+https://github.com/rust-lang/crates.io-index"
1810
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
1811
-
1812
1795
  [[package]]
1813
1796
  name = "untrusted"
1814
1797
  version = "0.9.0"