webtoken 0.6.0__tar.gz → 0.6.4__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 (48) hide show
  1. {webtoken-0.6.0 → webtoken-0.6.4}/.github/workflows/tests.yml +4 -3
  2. {webtoken-0.6.0 → webtoken-0.6.4}/Cargo.lock +113 -79
  3. {webtoken-0.6.0 → webtoken-0.6.4}/Cargo.toml +10 -9
  4. {webtoken-0.6.0 → webtoken-0.6.4}/PKG-INFO +11 -2
  5. {webtoken-0.6.0 → webtoken-0.6.4}/README.md +10 -1
  6. {webtoken-0.6.0 → webtoken-0.6.4}/benchmarks/benchmarks.py +1 -1
  7. webtoken-0.6.4/benchmarks/mem_benchmark.py +29 -0
  8. {webtoken-0.6.0 → webtoken-0.6.4}/pyproject.toml +3 -3
  9. {webtoken-0.6.0 → webtoken-0.6.4}/src/crypto.rs +110 -23
  10. webtoken-0.6.4/src/crypto_parsing.rs +544 -0
  11. {webtoken-0.6.0 → webtoken-0.6.4}/src/jwe.rs +18 -14
  12. {webtoken-0.6.0 → webtoken-0.6.4}/src/lib.rs +29 -40
  13. {webtoken-0.6.0 → webtoken-0.6.4}/src/paseto.rs +14 -18
  14. webtoken-0.6.4/tests/test_crypto_parsing.py +295 -0
  15. webtoken-0.6.4/tests/test_jwe_chacha20.py +66 -0
  16. webtoken-0.6.4/tests/test_jwe_compact.py +375 -0
  17. webtoken-0.6.0/src/crypto_parsing.rs +0 -280
  18. {webtoken-0.6.0 → webtoken-0.6.4}/.github/workflows/release.yml +0 -0
  19. {webtoken-0.6.0 → webtoken-0.6.4}/.gitignore +0 -0
  20. {webtoken-0.6.0 → webtoken-0.6.4}/License +0 -0
  21. {webtoken-0.6.0 → webtoken-0.6.4}/benchmarks/Readme.md +0 -0
  22. {webtoken-0.6.0 → webtoken-0.6.4}/src/algorithms.rs +0 -0
  23. {webtoken-0.6.0 → webtoken-0.6.4}/src/jwk.rs +0 -0
  24. {webtoken-0.6.0 → webtoken-0.6.4}/src/jws.rs +0 -0
  25. {webtoken-0.6.0 → webtoken-0.6.4}/src/jwt.rs +0 -0
  26. {webtoken-0.6.0 → webtoken-0.6.4}/src/key_utils.rs +0 -0
  27. {webtoken-0.6.0 → webtoken-0.6.4}/src/py_utils.rs +0 -0
  28. {webtoken-0.6.0 → webtoken-0.6.4}/src/pyjwt_jwk_api.rs +0 -0
  29. {webtoken-0.6.0 → webtoken-0.6.4}/tests/Readme.md +0 -0
  30. {webtoken-0.6.0 → webtoken-0.6.4}/tests/keys_and_vectors.py +0 -0
  31. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_advisory.py +0 -0
  32. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_algorithms.py +0 -0
  33. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jwk.py +0 -0
  34. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jws.py +0 -0
  35. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jwt.py +0 -0
  36. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_compressed.py +0 -0
  37. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_exceptions.py +0 -0
  38. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_jwe.py +0 -0
  39. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_jwt.py +0 -0
  40. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto.py +0 -0
  41. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_key.py +0 -0
  42. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_sample.py +0 -0
  43. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_token.py +0 -0
  44. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_v4.py +0 -0
  45. {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_vectors.py +0 -0
  46. {webtoken-0.6.0 → webtoken-0.6.4}/tests/tests.py +0 -0
  47. {webtoken-0.6.0 → webtoken-0.6.4}/webtoken/__init__.py +0 -0
  48. {webtoken-0.6.0 → webtoken-0.6.4}/webtoken/webtoken.py +0 -0
@@ -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', '3.14t']
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
@@ -56,7 +57,7 @@ jobs:
56
57
 
57
58
  - name: Build and install
58
59
  run: |
59
- maturin build --release
60
+ maturin build --release -i python
60
61
  pip install target/wheels/*.whl
61
62
 
62
63
  - name: Run tests
@@ -16,7 +16,7 @@ checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
16
16
  dependencies = [
17
17
  "base64ct",
18
18
  "blake2",
19
- "cpufeatures",
19
+ "cpufeatures 0.2.17",
20
20
  "password-hash",
21
21
  ]
22
22
 
@@ -28,21 +28,21 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
28
28
 
29
29
  [[package]]
30
30
  name = "arrayvec"
31
- version = "0.7.6"
31
+ version = "0.7.7"
32
32
  source = "registry+https://github.com/rust-lang/crates.io-index"
33
- checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
33
+ checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe"
34
34
 
35
35
  [[package]]
36
36
  name = "autocfg"
37
- version = "1.5.0"
37
+ version = "1.5.1"
38
38
  source = "registry+https://github.com/rust-lang/crates.io-index"
39
- checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
39
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
40
40
 
41
41
  [[package]]
42
42
  name = "aws-lc-rs"
43
- version = "1.16.1"
43
+ version = "1.17.0"
44
44
  source = "registry+https://github.com/rust-lang/crates.io-index"
45
- checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf"
45
+ checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00"
46
46
  dependencies = [
47
47
  "aws-lc-sys",
48
48
  "untrusted",
@@ -51,9 +51,9 @@ dependencies = [
51
51
 
52
52
  [[package]]
53
53
  name = "aws-lc-sys"
54
- version = "0.38.0"
54
+ version = "0.41.0"
55
55
  source = "registry+https://github.com/rust-lang/crates.io-index"
56
- checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e"
56
+ checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4"
57
57
  dependencies = [
58
58
  "cc",
59
59
  "cmake",
@@ -102,11 +102,20 @@ dependencies = [
102
102
  "generic-array",
103
103
  ]
104
104
 
105
+ [[package]]
106
+ name = "block-buffer"
107
+ version = "0.12.1"
108
+ source = "registry+https://github.com/rust-lang/crates.io-index"
109
+ checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
110
+ dependencies = [
111
+ "hybrid-array",
112
+ ]
113
+
105
114
  [[package]]
106
115
  name = "cc"
107
- version = "1.2.56"
116
+ version = "1.2.65"
108
117
  source = "registry+https://github.com/rust-lang/crates.io-index"
109
- checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
118
+ checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
110
119
  dependencies = [
111
120
  "find-msvc-tools",
112
121
  "jobserver",
@@ -122,30 +131,31 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
122
131
 
123
132
  [[package]]
124
133
  name = "chacha20"
125
- version = "0.9.1"
134
+ version = "0.10.1"
126
135
  source = "registry+https://github.com/rust-lang/crates.io-index"
127
- checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
136
+ checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
128
137
  dependencies = [
129
138
  "cfg-if",
130
139
  "cipher",
131
- "cpufeatures",
140
+ "cpufeatures 0.3.0",
132
141
  ]
133
142
 
134
143
  [[package]]
135
144
  name = "cipher"
136
- version = "0.4.4"
145
+ version = "0.5.2"
137
146
  source = "registry+https://github.com/rust-lang/crates.io-index"
138
- checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
147
+ checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c"
139
148
  dependencies = [
140
- "crypto-common",
149
+ "block-buffer 0.12.1",
150
+ "crypto-common 0.2.2",
141
151
  "inout",
142
152
  ]
143
153
 
144
154
  [[package]]
145
155
  name = "cmake"
146
- version = "0.1.57"
156
+ version = "0.1.58"
147
157
  source = "registry+https://github.com/rust-lang/crates.io-index"
148
- checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d"
158
+ checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
149
159
  dependencies = [
150
160
  "cc",
151
161
  ]
@@ -165,6 +175,15 @@ dependencies = [
165
175
  "libc",
166
176
  ]
167
177
 
178
+ [[package]]
179
+ name = "cpufeatures"
180
+ version = "0.3.0"
181
+ source = "registry+https://github.com/rust-lang/crates.io-index"
182
+ checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
183
+ dependencies = [
184
+ "libc",
185
+ ]
186
+
168
187
  [[package]]
169
188
  name = "crc32fast"
170
189
  version = "1.5.0"
@@ -184,13 +203,21 @@ dependencies = [
184
203
  "typenum",
185
204
  ]
186
205
 
206
+ [[package]]
207
+ name = "crypto-common"
208
+ version = "0.2.2"
209
+ source = "registry+https://github.com/rust-lang/crates.io-index"
210
+ checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
211
+ dependencies = [
212
+ "hybrid-array",
213
+ ]
214
+
187
215
  [[package]]
188
216
  name = "deranged"
189
217
  version = "0.5.8"
190
218
  source = "registry+https://github.com/rust-lang/crates.io-index"
191
219
  checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
192
220
  dependencies = [
193
- "powerfmt",
194
221
  "serde_core",
195
222
  ]
196
223
 
@@ -200,8 +227,8 @@ version = "0.10.7"
200
227
  source = "registry+https://github.com/rust-lang/crates.io-index"
201
228
  checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
202
229
  dependencies = [
203
- "block-buffer",
204
- "crypto-common",
230
+ "block-buffer 0.10.4",
231
+ "crypto-common 0.1.7",
205
232
  "subtle",
206
233
  ]
207
234
 
@@ -263,9 +290,9 @@ dependencies = [
263
290
 
264
291
  [[package]]
265
292
  name = "graviola"
266
- version = "0.3.0"
293
+ version = "0.4.1"
267
294
  source = "registry+https://github.com/rust-lang/crates.io-index"
268
- checksum = "b1662fcff7237fbe8c91ff2800fcce9435af25b7f0cb580f5679b31c3a1f1e7a"
295
+ checksum = "e8596c4fa98466aae2fcf4c72a665bc0e021c0aaab1e47d82044d3dc3e309a76"
269
296
  dependencies = [
270
297
  "cfg-if",
271
298
  "getrandom",
@@ -273,9 +300,9 @@ dependencies = [
273
300
 
274
301
  [[package]]
275
302
  name = "hashbrown"
276
- version = "0.16.1"
303
+ version = "0.17.1"
277
304
  source = "registry+https://github.com/rust-lang/crates.io-index"
278
- checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
305
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
279
306
 
280
307
  [[package]]
281
308
  name = "heck"
@@ -283,11 +310,20 @@ version = "0.5.0"
283
310
  source = "registry+https://github.com/rust-lang/crates.io-index"
284
311
  checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
285
312
 
313
+ [[package]]
314
+ name = "hybrid-array"
315
+ version = "0.4.12"
316
+ source = "registry+https://github.com/rust-lang/crates.io-index"
317
+ checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da"
318
+ dependencies = [
319
+ "typenum",
320
+ ]
321
+
286
322
  [[package]]
287
323
  name = "indexmap"
288
- version = "2.13.0"
324
+ version = "2.14.0"
289
325
  source = "registry+https://github.com/rust-lang/crates.io-index"
290
- checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
326
+ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
291
327
  dependencies = [
292
328
  "equivalent",
293
329
  "hashbrown",
@@ -295,18 +331,18 @@ dependencies = [
295
331
 
296
332
  [[package]]
297
333
  name = "inout"
298
- version = "0.1.4"
334
+ version = "0.2.2"
299
335
  source = "registry+https://github.com/rust-lang/crates.io-index"
300
- checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
336
+ checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7"
301
337
  dependencies = [
302
- "generic-array",
338
+ "hybrid-array",
303
339
  ]
304
340
 
305
341
  [[package]]
306
342
  name = "itoa"
307
- version = "1.0.17"
343
+ version = "1.0.18"
308
344
  source = "registry+https://github.com/rust-lang/crates.io-index"
309
- checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
345
+ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
310
346
 
311
347
  [[package]]
312
348
  name = "jobserver"
@@ -320,15 +356,15 @@ dependencies = [
320
356
 
321
357
  [[package]]
322
358
  name = "libc"
323
- version = "0.2.183"
359
+ version = "0.2.186"
324
360
  source = "registry+https://github.com/rust-lang/crates.io-index"
325
- checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
361
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
326
362
 
327
363
  [[package]]
328
364
  name = "memchr"
329
- version = "2.8.0"
365
+ version = "2.8.2"
330
366
  source = "registry+https://github.com/rust-lang/crates.io-index"
331
- checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
367
+ checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
332
368
 
333
369
  [[package]]
334
370
  name = "miniz_oxide"
@@ -352,9 +388,9 @@ dependencies = [
352
388
 
353
389
  [[package]]
354
390
  name = "num-conv"
355
- version = "0.2.0"
391
+ version = "0.2.2"
356
392
  source = "registry+https://github.com/rust-lang/crates.io-index"
357
- checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
393
+ checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
358
394
 
359
395
  [[package]]
360
396
  name = "num-integer"
@@ -376,9 +412,9 @@ dependencies = [
376
412
 
377
413
  [[package]]
378
414
  name = "once_cell"
379
- version = "1.21.3"
415
+ version = "1.21.4"
380
416
  source = "registry+https://github.com/rust-lang/crates.io-index"
381
- checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
417
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
382
418
 
383
419
  [[package]]
384
420
  name = "password-hash"
@@ -414,9 +450,9 @@ dependencies = [
414
450
 
415
451
  [[package]]
416
452
  name = "pyo3"
417
- version = "0.28.2"
453
+ version = "0.29.0"
418
454
  source = "registry+https://github.com/rust-lang/crates.io-index"
419
- checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1"
455
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
420
456
  dependencies = [
421
457
  "libc",
422
458
  "once_cell",
@@ -429,18 +465,18 @@ dependencies = [
429
465
 
430
466
  [[package]]
431
467
  name = "pyo3-build-config"
432
- version = "0.28.2"
468
+ version = "0.29.0"
433
469
  source = "registry+https://github.com/rust-lang/crates.io-index"
434
- checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7"
470
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
435
471
  dependencies = [
436
472
  "target-lexicon",
437
473
  ]
438
474
 
439
475
  [[package]]
440
476
  name = "pyo3-ffi"
441
- version = "0.28.2"
477
+ version = "0.29.0"
442
478
  source = "registry+https://github.com/rust-lang/crates.io-index"
443
- checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc"
479
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
444
480
  dependencies = [
445
481
  "libc",
446
482
  "pyo3-build-config",
@@ -448,9 +484,9 @@ dependencies = [
448
484
 
449
485
  [[package]]
450
486
  name = "pyo3-macros"
451
- version = "0.28.2"
487
+ version = "0.29.0"
452
488
  source = "registry+https://github.com/rust-lang/crates.io-index"
453
- checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e"
489
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
454
490
  dependencies = [
455
491
  "proc-macro2",
456
492
  "pyo3-macros-backend",
@@ -460,22 +496,21 @@ dependencies = [
460
496
 
461
497
  [[package]]
462
498
  name = "pyo3-macros-backend"
463
- version = "0.28.2"
499
+ version = "0.29.0"
464
500
  source = "registry+https://github.com/rust-lang/crates.io-index"
465
- checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a"
501
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
466
502
  dependencies = [
467
503
  "heck",
468
504
  "proc-macro2",
469
- "pyo3-build-config",
470
505
  "quote",
471
506
  "syn",
472
507
  ]
473
508
 
474
509
  [[package]]
475
510
  name = "pythonize"
476
- version = "0.28.0"
511
+ version = "0.29.0"
477
512
  source = "registry+https://github.com/rust-lang/crates.io-index"
478
- checksum = "0b79f670c9626c8b651c0581011b57b6ba6970bb69faf01a7c4c0cfc81c43f95"
513
+ checksum = "6ec376e1216e0c929a74964ce2020012a1a39f32d80e78aa688721219ea7fb89"
479
514
  dependencies = [
480
515
  "pyo3",
481
516
  "serde",
@@ -483,9 +518,9 @@ dependencies = [
483
518
 
484
519
  [[package]]
485
520
  name = "quote"
486
- version = "1.0.45"
521
+ version = "1.0.46"
487
522
  source = "registry+https://github.com/rust-lang/crates.io-index"
488
- checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
523
+ checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
489
524
  dependencies = [
490
525
  "proc-macro2",
491
526
  ]
@@ -544,9 +579,9 @@ dependencies = [
544
579
 
545
580
  [[package]]
546
581
  name = "serde_json"
547
- version = "1.0.149"
582
+ version = "1.0.150"
548
583
  source = "registry+https://github.com/rust-lang/crates.io-index"
549
- checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
584
+ checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
550
585
  dependencies = [
551
586
  "indexmap",
552
587
  "itoa",
@@ -558,15 +593,15 @@ dependencies = [
558
593
 
559
594
  [[package]]
560
595
  name = "shlex"
561
- version = "1.3.0"
596
+ version = "2.0.1"
562
597
  source = "registry+https://github.com/rust-lang/crates.io-index"
563
- checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
598
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
564
599
 
565
600
  [[package]]
566
601
  name = "simd-adler32"
567
- version = "0.3.8"
602
+ version = "0.3.9"
568
603
  source = "registry+https://github.com/rust-lang/crates.io-index"
569
- checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
604
+ checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
570
605
 
571
606
  [[package]]
572
607
  name = "subtle"
@@ -576,9 +611,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
576
611
 
577
612
  [[package]]
578
613
  name = "syn"
579
- version = "2.0.117"
614
+ version = "2.0.118"
580
615
  source = "registry+https://github.com/rust-lang/crates.io-index"
581
- checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
616
+ checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
582
617
  dependencies = [
583
618
  "proc-macro2",
584
619
  "quote",
@@ -593,12 +628,11 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
593
628
 
594
629
  [[package]]
595
630
  name = "time"
596
- version = "0.3.47"
631
+ version = "0.3.51"
597
632
  source = "registry+https://github.com/rust-lang/crates.io-index"
598
- checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
633
+ checksum = "85c17d80feb7334b40c484e45ed1a5273dfd8bfda537c3be2e74a06a6686f327"
599
634
  dependencies = [
600
635
  "deranged",
601
- "itoa",
602
636
  "num-conv",
603
637
  "powerfmt",
604
638
  "serde_core",
@@ -608,15 +642,15 @@ dependencies = [
608
642
 
609
643
  [[package]]
610
644
  name = "time-core"
611
- version = "0.1.8"
645
+ version = "0.1.9"
612
646
  source = "registry+https://github.com/rust-lang/crates.io-index"
613
- checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
647
+ checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"
614
648
 
615
649
  [[package]]
616
650
  name = "time-macros"
617
- version = "0.2.27"
651
+ version = "0.2.30"
618
652
  source = "registry+https://github.com/rust-lang/crates.io-index"
619
- checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
653
+ checksum = "dcef1a61bdb119096e153208ec5cbec23944ce8bca13be5c7f60c634f7403935"
620
654
  dependencies = [
621
655
  "num-conv",
622
656
  "time-core",
@@ -624,9 +658,9 @@ dependencies = [
624
658
 
625
659
  [[package]]
626
660
  name = "typenum"
627
- version = "1.19.0"
661
+ version = "1.20.1"
628
662
  source = "registry+https://github.com/rust-lang/crates.io-index"
629
- checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
663
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
630
664
 
631
665
  [[package]]
632
666
  name = "unicode-ident"
@@ -648,9 +682,9 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
648
682
 
649
683
  [[package]]
650
684
  name = "wasip2"
651
- version = "1.0.2+wasi-0.2.9"
685
+ version = "1.0.4+wasi-0.2.12"
652
686
  source = "registry+https://github.com/rust-lang/crates.io-index"
653
- checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
687
+ checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
654
688
  dependencies = [
655
689
  "wit-bindgen",
656
690
  ]
@@ -680,15 +714,15 @@ dependencies = [
680
714
 
681
715
  [[package]]
682
716
  name = "wit-bindgen"
683
- version = "0.51.0"
717
+ version = "0.57.1"
684
718
  source = "registry+https://github.com/rust-lang/crates.io-index"
685
- checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
719
+ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
686
720
 
687
721
  [[package]]
688
722
  name = "zeroize"
689
- version = "1.8.2"
723
+ version = "1.9.0"
690
724
  source = "registry+https://github.com/rust-lang/crates.io-index"
691
- checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
725
+ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
692
726
 
693
727
  [[package]]
694
728
  name = "zmij"
@@ -10,16 +10,17 @@ crate-type = ["cdylib"]
10
10
  [dependencies]
11
11
 
12
12
  # Main Crypto BE
13
- aws-lc-rs = { version = "=1.16.1" }
13
+ aws-lc-rs = { version = "=1.17" }
14
14
 
15
15
  # Aux Crypto
16
- graviola = "0.3"
17
- blake2b_simd = "1.0.2"
18
- chacha20 = "0.9"
19
- argon2 = "0.5"
20
- flate2 = "1.1"
16
+ graviola = "0.4"
17
+ blake2b_simd = "1.0.4"
18
+ chacha20 = { version = "0.10.1", features = ["xchacha"] }
19
+ argon2 = "0.5.3"
20
+ flate2 = "1.1.9"
21
21
  subtle = "2.6"
22
22
 
23
+
23
24
  base64 = "0.22"
24
25
  serde = { version = "1.0", features = ["derive"] }
25
26
  serde_json = { version = "1.0", features = ["preserve_order"] }
@@ -32,11 +33,11 @@ num-traits = "0.2"
32
33
  num-integer = "0.1"
33
34
 
34
35
 
35
- pythonize = "0.28"
36
+ pythonize = "0.29"
36
37
 
37
38
  [dependencies.pyo3]
38
- version = "0.28"
39
- features = ["extension-module", "abi3-py311", "py-clone", "time"]
39
+ version = "0.29"
40
+ features = ["extension-module", "abi3-py312", "abi3t", "py-clone", "time"]
40
41
 
41
42
 
42
43
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webtoken
3
- Version: 0.6.0
3
+ Version: 0.6.4
4
4
  Summary: A Rust-backed JWT library
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
@@ -15,7 +15,16 @@ Project-URL: Homepage, https://github.com/h5rdly/webtoken/wiki
15
15
 
16
16
  ## Size
17
17
 
18
- The `.so` size on linux is ~3.9Mb, no external dependencies.
18
+ The `.so` size on linux is ~`3.9Mb`, no external dependencies.
19
+
20
+ Simple RAM usage [benchmark](https://github.com/h5rdly/webtoken/blob/main/benchmarks/mem_benchmark.py) -
21
+
22
+ ```
23
+ RAM Footprint on Import (Native Linux /proc/self/status):
24
+
25
+ jwt: 17.54 MB
26
+ webtoken: 5.14 MB
27
+ ```
19
28
 
20
29
  ## Speed
21
30
 
@@ -7,7 +7,16 @@
7
7
 
8
8
  ## Size
9
9
 
10
- The `.so` size on linux is ~3.9Mb, no external dependencies.
10
+ The `.so` size on linux is ~`3.9Mb`, no external dependencies.
11
+
12
+ Simple RAM usage [benchmark](https://github.com/h5rdly/webtoken/blob/main/benchmarks/mem_benchmark.py) -
13
+
14
+ ```
15
+ RAM Footprint on Import (Native Linux /proc/self/status):
16
+
17
+ jwt: 17.54 MB
18
+ webtoken: 5.14 MB
19
+ ```
11
20
 
12
21
  ## Speed
13
22
 
@@ -79,7 +79,7 @@ def benchmark(iterations=100):
79
79
 
80
80
  # Standard
81
81
  compare_algo("HS256", is_symmetric=True)
82
- for algo in "RS256", "ES256", "EdDSA", "ES512", "ES256K": #, "ML-DSA-65":
82
+ for algo in "RS256", "RS512", "ES256", "EdDSA", "ES512", "ES256K": #, "ML-DSA-65":
83
83
  compare_algo(algo)
84
84
 
85
85
 
@@ -0,0 +1,29 @@
1
+ import sys, subprocess
2
+
3
+
4
+ template = """
5
+ def get_rss():
6
+ with open('/proc/self/status') as f:
7
+ for line in f:
8
+ if line.startswith('VmRSS:'):
9
+ return int(line.split()[1]) / 1024
10
+ return 0.0
11
+
12
+ mem_before = get_rss()
13
+
14
+ import MODULE_NAME
15
+
16
+ print(f"{ get_rss() - mem_before:.2f}")
17
+ """
18
+
19
+ print("\nRAM Footprint on Import (Native Linux /proc/self/status):\n")
20
+
21
+ for mod in ("jwt", "webtoken"):
22
+ code = template.replace("MODULE_NAME", mod)
23
+
24
+ result = subprocess.run((sys.executable, "-c", code), capture_output=True, text=True)
25
+
26
+ if result.returncode:
27
+ print(f"Error running {mod}: {result.stderr.strip()}")
28
+ else:
29
+ print(f"{mod}: {' ' * (10 -len(mod))} {result.stdout.strip()} MB")
@@ -1,10 +1,10 @@
1
1
  [build-system]
2
- requires = ["maturin>=1.11"]
2
+ requires = ["maturin>=1.14"]
3
3
  build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "webtoken"
7
- version = "0.6.0"
7
+ version = "0.6.4"
8
8
  description = "A Rust-backed JWT library"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -13,7 +13,7 @@ requires-python = ">=3.12"
13
13
  Homepage = "https://github.com/h5rdly/webtoken/wiki"
14
14
 
15
15
  [tool.maturin]
16
- features = ["pyo3/extension-module", "pyo3/abi3-py312"]
16
+ features = ["pyo3/extension-module", "pyo3/abi3-py312", "pyo3/abi3t"]
17
17
  module-name = "webtoken._webtoken"
18
18
 
19
19
  # Ignore "key too short" warnings when running tests