webtoken 0.5.0__tar.gz → 0.6.3__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 (51) hide show
  1. {webtoken-0.5.0 → webtoken-0.6.3}/.github/workflows/release.yml +70 -16
  2. {webtoken-0.5.0 → webtoken-0.6.3}/.github/workflows/tests.yml +6 -6
  3. {webtoken-0.5.0 → webtoken-0.6.3}/Cargo.lock +250 -90
  4. {webtoken-0.5.0 → webtoken-0.6.3}/Cargo.toml +15 -6
  5. {webtoken-0.5.0 → webtoken-0.6.3}/PKG-INFO +22 -28
  6. {webtoken-0.5.0 → webtoken-0.6.3}/README.md +19 -25
  7. {webtoken-0.5.0 → webtoken-0.6.3}/benchmarks/benchmarks.py +4 -11
  8. webtoken-0.6.3/benchmarks/mem_benchmark.py +29 -0
  9. {webtoken-0.5.0 → webtoken-0.6.3}/pyproject.toml +5 -5
  10. webtoken-0.6.3/src/algorithms.rs +58 -0
  11. webtoken-0.6.3/src/crypto.rs +1217 -0
  12. webtoken-0.6.3/src/crypto_parsing.rs +356 -0
  13. webtoken-0.6.3/src/jwe.rs +379 -0
  14. webtoken-0.6.3/src/jwk.rs +266 -0
  15. {webtoken-0.5.0 → webtoken-0.6.3}/src/jws.rs +7 -11
  16. webtoken-0.6.3/src/jwt.rs +405 -0
  17. webtoken-0.6.3/src/key_utils.rs +278 -0
  18. {webtoken-0.5.0 → webtoken-0.6.3}/src/lib.rs +599 -625
  19. webtoken-0.6.3/src/paseto.rs +1049 -0
  20. {webtoken-0.5.0 → webtoken-0.6.3}/src/pyjwt_jwk_api.rs +69 -58
  21. webtoken-0.6.3/tests/keys_and_vectors.py +109 -0
  22. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_api_jwt.py +1 -1
  23. webtoken-0.6.3/tests/test_crypto_parsing.py +217 -0
  24. webtoken-0.6.3/tests/test_jwe.py +272 -0
  25. webtoken-0.6.3/tests/test_jwe_chacha20.py +66 -0
  26. webtoken-0.6.3/tests/test_jwe_compact.py +375 -0
  27. webtoken-0.6.3/tests/test_paseto.py +375 -0
  28. webtoken-0.6.3/tests/test_paseto_key.py +197 -0
  29. webtoken-0.6.3/tests/test_paseto_sample.py +333 -0
  30. webtoken-0.6.3/tests/test_paseto_token.py +66 -0
  31. webtoken-0.6.3/tests/test_paseto_v4.py +126 -0
  32. webtoken-0.6.3/tests/test_paseto_vectors.py +691 -0
  33. webtoken-0.6.3/webtoken/webtoken.py +1188 -0
  34. webtoken-0.5.0/src/algorithms.rs +0 -326
  35. webtoken-0.5.0/src/crypto.rs +0 -608
  36. webtoken-0.5.0/src/jwk.rs +0 -643
  37. webtoken-0.5.0/webtoken/webtoken.py +0 -797
  38. {webtoken-0.5.0 → webtoken-0.6.3}/.gitignore +0 -0
  39. {webtoken-0.5.0 → webtoken-0.6.3}/License +0 -0
  40. {webtoken-0.5.0 → webtoken-0.6.3}/benchmarks/Readme.md +0 -0
  41. {webtoken-0.5.0 → webtoken-0.6.3}/src/py_utils.rs +0 -0
  42. {webtoken-0.5.0 → webtoken-0.6.3}/tests/Readme.md +0 -0
  43. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_advisory.py +0 -0
  44. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_algorithms.py +0 -0
  45. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_api_jwk.py +0 -0
  46. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_api_jws.py +0 -0
  47. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_compressed.py +0 -0
  48. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_exceptions.py +0 -0
  49. {webtoken-0.5.0 → webtoken-0.6.3}/tests/test_jwt.py +0 -0
  50. {webtoken-0.5.0 → webtoken-0.6.3}/tests/tests.py +0 -0
  51. {webtoken-0.5.0 → webtoken-0.6.3}/webtoken/__init__.py +0 -0
@@ -20,13 +20,11 @@ jobs:
20
20
  os: ubuntu-latest
21
21
  target: x86_64
22
22
  manylinux: auto
23
- qemu: false
24
23
 
25
24
  - name: Musl x86
26
25
  os: ubuntu-latest
27
26
  target: x86_64
28
27
  manylinux: musllinux_1_2
29
- qemu: false
30
28
 
31
29
  - name: Linux ARM64
32
30
  os: ubuntu-latest
@@ -37,18 +35,13 @@ jobs:
37
35
  - name: MacOS
38
36
  os: macos-latest
39
37
  target: x86_64
40
- manylinux: auto
41
- qemu: false
42
38
 
43
39
  - name: Windows
44
40
  os: windows-latest
45
41
  target: x64
46
- manylinux: auto
47
- qemu: false
48
42
 
49
43
  steps:
50
44
  - uses: actions/checkout@v6
51
-
52
45
  - name: Set up QEMU
53
46
  if: matrix.qemu
54
47
  uses: docker/setup-qemu-action@v3
@@ -67,6 +60,30 @@ jobs:
67
60
  name: wheels-${{ matrix.name }}
68
61
  path: dist
69
62
 
63
+ build_wheels_freebsd:
64
+ name: Build FreeBSD wheels
65
+ runs-on: ubuntu-latest
66
+ steps:
67
+ - uses: actions/checkout@v6
68
+ - name: Build in FreeBSD VM
69
+ uses: vmactions/freebsd-vm@v1
70
+ with:
71
+ usesh: true
72
+ prepare: pkg install -y rust python313 git
73
+
74
+ run: |
75
+ python3.13 -m venv venv
76
+ . venv/bin/activate
77
+ pip install maturin
78
+ maturin build --release --out dist --find-interpreter
79
+
80
+ - name: Upload FreeBSD wheels
81
+ uses: actions/upload-artifact@v6
82
+ with:
83
+ name: wheels-freebsd
84
+ path: dist
85
+
86
+
70
87
  build_sdist:
71
88
  name: Build source distribution
72
89
  runs-on: ubuntu-latest
@@ -80,24 +97,61 @@ jobs:
80
97
  - name: Upload sdist
81
98
  uses: actions/upload-artifact@v6
82
99
  with:
83
- name: wheels-sdist
100
+ name: sdist
84
101
  path: dist
85
102
 
86
103
  publish:
87
- name: PyPI
88
- needs: [build_wheels, build_sdist]
104
+ name: Publish to PyPI + GitHub Release
105
+ needs: [build_wheels, build_wheels_freebsd, build_sdist]
89
106
  runs-on: ubuntu-latest
90
107
  environment: pypi
91
108
  permissions:
92
- contents: read
93
- id-token: write
94
-
109
+ contents: write
110
+ id-token: write
111
+
95
112
  steps:
113
+ - uses: actions/checkout@v6
114
+
96
115
  - uses: actions/download-artifact@v7
97
116
  with:
98
- pattern: wheels-*
117
+ name: sdist
99
118
  path: dist
100
- merge-multiple: true
101
-
119
+
120
+ # Explicit downloads - FreeBSD wheels not allowed on PyPI
121
+ - uses: actions/download-artifact@v7
122
+ with:
123
+ name: wheels-Linux x86
124
+ path: dist
125
+ - uses: actions/download-artifact@v7
126
+ with:
127
+ name: wheels-Musl x86
128
+ path: dist
129
+ - uses: actions/download-artifact@v7
130
+ with:
131
+ name: wheels-Linux ARM64
132
+ path: dist
133
+ - uses: actions/download-artifact@v7
134
+ with:
135
+ name: wheels-MacOS
136
+ path: dist
137
+ - uses: actions/download-artifact@v7
138
+ with:
139
+ name: wheels-Windows
140
+ path: dist
141
+
102
142
  - name: Publish to PyPI
103
143
  uses: pypa/gh-action-pypi-publish@release/v1
144
+
145
+ - uses: actions/download-artifact@v7
146
+ with:
147
+ name: wheels-freebsd
148
+ path: dist
149
+
150
+ # GitHub Release with all wheels
151
+ - name: GitHub Release
152
+ uses: softprops/action-gh-release@v2
153
+ if: startsWith(github.ref, 'refs/tags/')
154
+ with:
155
+ files: dist/*
156
+ generate_release_notes: true
157
+
@@ -17,8 +17,8 @@ jobs:
17
17
  fail-fast: false
18
18
  matrix:
19
19
  os: [ubuntu-latest, windows-latest, macos-latest]
20
- python-version: ['3.12', '3.13', '3.14']
21
-
20
+ python-version: ['3.12', '3.13', '3.14'] #, '3.14t'] # figure out ci to make 3.14t work
21
+
22
22
  steps:
23
23
  - uses: actions/checkout@v6
24
24
 
@@ -28,6 +28,7 @@ jobs:
28
28
  - uses: actions/setup-python@v6
29
29
  with:
30
30
  python-version: ${{ matrix.python-version }}
31
+ allow-prereleases: ${{ endsWith(matrix.python-version, 't') }}
31
32
 
32
33
  - name: Install build dependencies
33
34
  run: pip install maturin pytest
@@ -36,7 +37,6 @@ jobs:
36
37
  shell: bash
37
38
  run: |
38
39
  maturin build --release
39
- # Universal install command that works on Bash (Linux/Mac) and Git Bash (Windows)
40
40
  pip install target/wheels/*.whl
41
41
 
42
42
  - name: Run tests
@@ -57,7 +57,7 @@ jobs:
57
57
 
58
58
  - name: Build and install
59
59
  run: |
60
- maturin build --release
60
+ maturin build --release -i python
61
61
  pip install target/wheels/*.whl
62
62
 
63
63
  - name: Run tests
@@ -73,9 +73,9 @@ jobs:
73
73
  uses: vmactions/freebsd-vm@v1
74
74
  with:
75
75
  usesh: true
76
- prepare: pkg install -y rust python3 py311-pip git
76
+ prepare: pkg install -y rust python313 git
77
77
  run: |
78
- python3 -m venv venv
78
+ python3.13 -m venv venv
79
79
  . venv/bin/activate
80
80
  pip install maturin pytest
81
81