summaryrefslogtreecommitdiff
path: root/www/py-primp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--www/py-primp/Makefile44
-rw-r--r--www/py-primp/Makefile.crates236
-rw-r--r--www/py-primp/distinfo475
-rwxr-xr-xwww/py-primp/files/cc11
-rw-r--r--www/py-primp/pkg-descr16
5 files changed, 782 insertions, 0 deletions
diff --git a/www/py-primp/Makefile b/www/py-primp/Makefile
new file mode 100644
index 000000000000..101b4eebb35d
--- /dev/null
+++ b/www/py-primp/Makefile
@@ -0,0 +1,44 @@
+PORTNAME= primp
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.15.0
+CATEGORIES= www
+#MASTER_SITES= PYPI # conflicts with USES=cargo
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= High-performance HTTP client with advanced web browser impersonation
+WWW= https://github.com/deedy5/primp
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.5:devel/py-maturin@${PY_FLAVOR} \
+ git:devel/git # git shouldn't be needed here but it is expected
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.25.3:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR}
+
+USES= cargo cmake:indirect llvm perl5 pkgconfig python
+USE_PYTHON= pep517 autoplist pytest
+USE_PERL5= build
+
+USE_GITHUB= yes
+GH_ACCOUNT= deedy5
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+CARGO_TEST= no
+
+BINARY_ALIAS= cc=${FILESDIR}/cc
+
+TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC= ${WRKSRC}/tests
+
+# tests as of 0.15.0:
+# Results (32.59s):
+# 21 passed
+# 2 failed
+# - tests/test_defs.py:11 test_get_impersonate_firefox133
+# - tests/test_client.py:11 test_client_impersonate_chrome131
+
+.include <bsd.port.mk>
diff --git a/www/py-primp/Makefile.crates b/www/py-primp/Makefile.crates
new file mode 100644
index 000000000000..d55a03e1d149
--- /dev/null
+++ b/www/py-primp/Makefile.crates
@@ -0,0 +1,236 @@
+CARGO_CRATES= addr2line-0.24.2 \
+ adler2-2.0.0 \
+ aho-corasick-1.1.3 \
+ alloc-no-stdlib-2.0.4 \
+ alloc-stdlib-0.2.2 \
+ antidote-1.0.0 \
+ anyhow-1.0.98 \
+ arc-swap-1.7.1 \
+ async-compression-0.4.22 \
+ atomic-waker-1.1.2 \
+ autocfg-1.4.0 \
+ backtrace-0.3.74 \
+ base64-0.22.1 \
+ bindgen-0.70.1 \
+ bitflags-2.9.0 \
+ boring-sys2-4.15.11 \
+ boring2-4.15.11 \
+ brotli-7.0.0 \
+ brotli-decompressor-4.0.2 \
+ bytes-1.10.1 \
+ cc-1.2.19 \
+ cexpr-0.6.0 \
+ cfg-if-1.0.0 \
+ clang-sys-1.8.1 \
+ cmake-0.1.54 \
+ cookie-0.18.1 \
+ cookie_store-0.21.1 \
+ core-foundation-0.9.4 \
+ core-foundation-sys-0.8.7 \
+ crc32fast-1.4.2 \
+ deranged-0.4.0 \
+ displaydoc-0.2.5 \
+ document-features-0.2.11 \
+ either-1.15.0 \
+ encoding_rs-0.8.35 \
+ equivalent-1.0.2 \
+ flate2-1.1.1 \
+ fnv-1.0.7 \
+ foldhash-0.1.5 \
+ foreign-types-0.5.0 \
+ foreign-types-macros-0.2.3 \
+ foreign-types-shared-0.3.1 \
+ form_urlencoded-1.2.1 \
+ fs_extra-1.3.0 \
+ fslock-0.2.1 \
+ futf-0.1.5 \
+ futures-channel-0.3.31 \
+ futures-core-0.3.31 \
+ futures-sink-0.3.31 \
+ futures-task-0.3.31 \
+ futures-util-0.3.31 \
+ getrandom-0.3.2 \
+ gimli-0.31.1 \
+ glob-0.3.2 \
+ hashbrown-0.15.2 \
+ heck-0.5.0 \
+ html2text-0.14.3 \
+ html5ever-0.31.0 \
+ http-1.3.1 \
+ http-body-1.0.1 \
+ http-body-util-0.1.3 \
+ http2-0.4.21 \
+ httparse-1.10.1 \
+ hyper2-1.5.5 \
+ icu_collections-1.5.0 \
+ icu_locid-1.5.0 \
+ icu_locid_transform-1.5.0 \
+ icu_locid_transform_data-1.5.1 \
+ icu_normalizer-1.5.0 \
+ icu_normalizer_data-1.5.1 \
+ icu_properties-1.5.1 \
+ icu_properties_data-1.5.1 \
+ icu_provider-1.5.0 \
+ icu_provider_macros-1.5.0 \
+ idna-1.0.3 \
+ idna_adapter-1.2.0 \
+ indexmap-2.9.0 \
+ indoc-2.0.6 \
+ inventory-0.3.20 \
+ ipnet-2.11.0 \
+ itertools-0.13.0 \
+ itoa-1.0.15 \
+ jobserver-0.1.33 \
+ libc-0.2.172 \
+ libloading-0.8.6 \
+ linked-hash-map-0.5.6 \
+ linked_hash_set-0.1.5 \
+ litemap-0.7.5 \
+ litrs-0.4.1 \
+ lock_api-0.4.12 \
+ log-0.4.27 \
+ lru-0.13.0 \
+ mac-0.1.1 \
+ markup5ever-0.16.0 \
+ match_token-0.1.0 \
+ memchr-2.7.4 \
+ memoffset-0.9.1 \
+ mime-0.3.17 \
+ mime_guess-2.0.5 \
+ minimal-lexical-0.2.1 \
+ miniz_oxide-0.8.8 \
+ mio-1.0.3 \
+ new_debug_unreachable-1.0.6 \
+ nom-7.1.3 \
+ num-conv-0.1.0 \
+ object-0.36.7 \
+ once_cell-1.21.3 \
+ openssl-macros-0.1.1 \
+ parking_lot-0.12.3 \
+ parking_lot_core-0.9.10 \
+ percent-encoding-2.3.1 \
+ phf-0.11.3 \
+ phf_codegen-0.11.3 \
+ phf_generator-0.11.3 \
+ phf_shared-0.11.3 \
+ pin-project-lite-0.2.16 \
+ pin-utils-0.1.0 \
+ pkg-config-0.3.32 \
+ portable-atomic-1.11.0 \
+ powerfmt-0.2.0 \
+ ppv-lite86-0.2.21 \
+ precomputed-hash-0.1.1 \
+ proc-macro2-1.0.95 \
+ psl-types-2.0.11 \
+ publicsuffix-2.3.0 \
+ pyo3-0.24.1 \
+ pyo3-build-config-0.24.1 \
+ pyo3-ffi-0.24.1 \
+ pyo3-log-0.12.3 \
+ pyo3-macros-0.24.1 \
+ pyo3-macros-backend-0.24.1 \
+ pythonize-0.24.0 \
+ quote-1.0.40 \
+ r-efi-5.2.0 \
+ rand-0.8.5 \
+ rand-0.9.0 \
+ rand_chacha-0.9.0 \
+ rand_core-0.6.4 \
+ rand_core-0.9.3 \
+ redox_syscall-0.5.11 \
+ regex-1.11.1 \
+ regex-automata-0.4.9 \
+ regex-syntax-0.8.5 \
+ rquest-2.2.1 \
+ rustc-demangle-0.1.24 \
+ rustc-hash-1.1.0 \
+ rustls-pki-types-1.11.0 \
+ rustversion-1.0.20 \
+ ryu-1.0.20 \
+ scopeguard-1.2.0 \
+ serde-1.0.219 \
+ serde_derive-1.0.219 \
+ serde_json-1.0.140 \
+ serde_urlencoded-0.7.1 \
+ shlex-1.3.0 \
+ signal-hook-registry-1.4.2 \
+ siphasher-1.0.1 \
+ slab-0.4.9 \
+ smallvec-1.15.0 \
+ socket2-0.5.9 \
+ stable_deref_trait-1.2.0 \
+ string_cache-0.8.9 \
+ string_cache_codegen-0.5.4 \
+ syn-2.0.100 \
+ sync_wrapper-1.0.2 \
+ synstructure-0.13.1 \
+ system-configuration-0.6.1 \
+ system-configuration-sys-0.6.0 \
+ target-lexicon-0.13.2 \
+ tendril-0.4.3 \
+ thiserror-1.0.69 \
+ thiserror-2.0.12 \
+ thiserror-impl-1.0.69 \
+ thiserror-impl-2.0.12 \
+ time-0.3.41 \
+ time-core-0.1.4 \
+ time-macros-0.2.22 \
+ tinystr-0.7.6 \
+ tokio-1.44.2 \
+ tokio-boring2-4.15.11 \
+ tokio-macros-2.5.0 \
+ tokio-socks-0.5.2 \
+ tokio-util-0.7.14 \
+ tower-0.5.2 \
+ tower-layer-0.3.3 \
+ tower-service-0.3.3 \
+ tracing-0.1.41 \
+ tracing-attributes-0.1.28 \
+ tracing-core-0.1.33 \
+ try-lock-0.2.5 \
+ typed-builder-0.20.1 \
+ typed-builder-macro-0.20.1 \
+ unicase-2.8.1 \
+ unicode-ident-1.0.18 \
+ unicode-width-0.2.0 \
+ unindent-0.2.4 \
+ url-2.5.4 \
+ utf-8-0.7.6 \
+ utf16_iter-1.0.5 \
+ utf8_iter-1.0.4 \
+ version_check-0.9.5 \
+ want-0.3.1 \
+ wasi-0.11.0+wasi-snapshot-preview1 \
+ wasi-0.14.2+wasi-0.2.4 \
+ webpki-root-certs-0.26.8 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-x86_64-pc-windows-gnu-0.4.0 \
+ windows-link-0.1.1 \
+ windows-registry-0.5.1 \
+ windows-result-0.3.2 \
+ windows-strings-0.4.0 \
+ windows-sys-0.52.0 \
+ windows-targets-0.52.6 \
+ windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_msvc-0.52.6 \
+ windows_i686_gnu-0.52.6 \
+ windows_i686_gnullvm-0.52.6 \
+ windows_i686_msvc-0.52.6 \
+ windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_msvc-0.52.6 \
+ wit-bindgen-rt-0.39.0 \
+ write16-1.0.0 \
+ writeable-0.5.5 \
+ yoke-0.7.5 \
+ yoke-derive-0.7.5 \
+ zerocopy-0.8.24 \
+ zerocopy-derive-0.8.24 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
+ zerovec-0.10.4 \
+ zerovec-derive-0.10.3 \
+ zstd-0.13.3 \
+ zstd-safe-7.2.4 \
+ zstd-sys-2.0.15+zstd.1.5.7
diff --git a/www/py-primp/distinfo b/www/py-primp/distinfo
new file mode 100644
index 000000000000..c12785798330
--- /dev/null
+++ b/www/py-primp/distinfo
@@ -0,0 +1,475 @@
+TIMESTAMP = 1759042188
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
+SIZE (rust/crates/adler2-2.0.0.crate) = 13529
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/alloc-no-stdlib-2.0.4.crate) = cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3
+SIZE (rust/crates/alloc-no-stdlib-2.0.4.crate) = 10105
+SHA256 (rust/crates/alloc-stdlib-0.2.2.crate) = 94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece
+SIZE (rust/crates/alloc-stdlib-0.2.2.crate) = 6693
+SHA256 (rust/crates/antidote-1.0.0.crate) = 34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5
+SIZE (rust/crates/antidote-1.0.0.crate) = 6312
+SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487
+SIZE (rust/crates/anyhow-1.0.98.crate) = 53334
+SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457
+SIZE (rust/crates/arc-swap-1.7.1.crate) = 68512
+SHA256 (rust/crates/async-compression-0.4.22.crate) = 59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64
+SIZE (rust/crates/async-compression-0.4.22.crate) = 116199
+SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
+SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
+SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
+SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
+SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/bindgen-0.70.1.crate) = f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f
+SIZE (rust/crates/bindgen-0.70.1.crate) = 226363
+SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd
+SIZE (rust/crates/bitflags-2.9.0.crate) = 47654
+SHA256 (rust/crates/boring-sys2-4.15.11.crate) = 318dea1d26e76320786f325d0bc39b27a73a245c64dccf9c04d89f5af2256db0
+SIZE (rust/crates/boring-sys2-4.15.11.crate) = 3736325
+SHA256 (rust/crates/boring2-4.15.11.crate) = eaab3849155b901770a35391d4cb6e0aa050475f70258aab6b92e356922d4d5a
+SIZE (rust/crates/boring2-4.15.11.crate) = 198288
+SHA256 (rust/crates/brotli-7.0.0.crate) = cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd
+SIZE (rust/crates/brotli-7.0.0.crate) = 1356970
+SHA256 (rust/crates/brotli-decompressor-4.0.2.crate) = 74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37
+SIZE (rust/crates/brotli-decompressor-4.0.2.crate) = 193388
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/cc-1.2.19.crate) = 8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362
+SIZE (rust/crates/cc-1.2.19.crate) = 105910
+SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
+SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4
+SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009
+SHA256 (rust/crates/cmake-0.1.54.crate) = e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0
+SIZE (rust/crates/cmake-0.1.54.crate) = 18955
+SHA256 (rust/crates/cookie-0.18.1.crate) = 4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747
+SIZE (rust/crates/cookie-0.18.1.crate) = 43551
+SHA256 (rust/crates/cookie_store-0.21.1.crate) = 2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9
+SIZE (rust/crates/cookie_store-0.21.1.crate) = 34692
+SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
+SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
+SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
+SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
+SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
+SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
+SHA256 (rust/crates/document-features-0.2.11.crate) = 95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d
+SIZE (rust/crates/document-features-0.2.11.crate) = 14640
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
+SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/flate2-1.1.1.crate) = 7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece
+SIZE (rust/crates/flate2-1.1.1.crate) = 77224
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
+SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
+SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965
+SIZE (rust/crates/foreign-types-0.5.0.crate) = 7824
+SHA256 (rust/crates/foreign-types-macros-0.2.3.crate) = 1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742
+SIZE (rust/crates/foreign-types-macros-0.2.3.crate) = 7635
+SHA256 (rust/crates/foreign-types-shared-0.3.1.crate) = aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b
+SIZE (rust/crates/foreign-types-shared-0.3.1.crate) = 6006
+SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
+SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/fs_extra-1.3.0.crate) = 42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c
+SIZE (rust/crates/fs_extra-1.3.0.crate) = 31298
+SHA256 (rust/crates/fslock-0.2.1.crate) = 04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb
+SIZE (rust/crates/fslock-0.2.1.crate) = 13463
+SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
+SIZE (rust/crates/futf-0.1.5.crate) = 11344
+SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10
+SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971
+SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e
+SIZE (rust/crates/futures-core-0.3.31.crate) = 14318
+SHA256 (rust/crates/futures-sink-0.3.31.crate) = e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7
+SIZE (rust/crates/futures-sink-0.3.31.crate) = 7958
+SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988
+SIZE (rust/crates/futures-task-0.3.31.crate) = 11217
+SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81
+SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
+SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0
+SIZE (rust/crates/getrandom-0.3.2.crate) = 49140
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2
+SIZE (rust/crates/glob-0.3.2.crate) = 22359
+SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289
+SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/html2text-0.14.3.crate) = 393aaeda74fd1ee299520131edd11dbbeda69dd0a88965cc4a71945b78439fe9
+SIZE (rust/crates/html2text-0.14.3.crate) = 84899
+SHA256 (rust/crates/html5ever-0.31.0.crate) = 953cbbe631aae7fc0a112702ad5d3aaf09da38beaf45ea84610d6e1c358f569c
+SIZE (rust/crates/html5ever-0.31.0.crate) = 72775
+SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
+SIZE (rust/crates/http-1.3.1.crate) = 106063
+SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
+SIZE (rust/crates/http-body-1.0.1.crate) = 6125
+SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
+SIZE (rust/crates/http-body-util-0.1.3.crate) = 16975
+SHA256 (rust/crates/http2-0.4.21.crate) = a6e23815f8ec982e1452e1d0fda921ec20a9187fb610ad003c90cc5abd65b2c4
+SIZE (rust/crates/http2-0.4.21.crate) = 177825
+SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
+SIZE (rust/crates/httparse-1.10.1.crate) = 45190
+SHA256 (rust/crates/hyper2-1.5.5.crate) = d1a1bb25e0cbdbe7b21f8ef6c3c4785f147d79e7ded438b5ee2b70e380183294
+SIZE (rust/crates/hyper2-1.5.5.crate) = 153546
+SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526
+SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762
+SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637
+SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131
+SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e
+SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094
+SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d
+SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937
+SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f
+SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113
+SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7
+SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737
+SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5
+SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479
+SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2
+SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231
+SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9
+SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722
+SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6
+SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436
+SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e
+SIZE (rust/crates/idna-1.0.3.crate) = 142515
+SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71
+SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206
+SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e
+SIZE (rust/crates/indexmap-2.9.0.crate) = 91214
+SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
+SIZE (rust/crates/indoc-2.0.6.crate) = 17164
+SHA256 (rust/crates/inventory-0.3.20.crate) = ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83
+SIZE (rust/crates/inventory-0.3.20.crate) = 16414
+SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
+SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
+SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186
+SIZE (rust/crates/itertools-0.13.0.crate) = 146261
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a
+SIZE (rust/crates/jobserver-0.1.33.crate) = 29136
+SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa
+SIZE (rust/crates/libc-0.2.172.crate) = 791646
+SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34
+SIZE (rust/crates/libloading-0.8.6.crate) = 28922
+SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
+SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/linked_hash_set-0.1.5.crate) = bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2
+SIZE (rust/crates/linked_hash_set-0.1.5.crate) = 14810
+SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856
+SIZE (rust/crates/litemap-0.7.5.crate) = 29962
+SHA256 (rust/crates/litrs-0.4.1.crate) = b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5
+SIZE (rust/crates/litrs-0.4.1.crate) = 42603
+SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
+SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/lru-0.13.0.crate) = 227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465
+SIZE (rust/crates/lru-0.13.0.crate) = 16305
+SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
+SIZE (rust/crates/mac-0.1.1.crate) = 4838
+SHA256 (rust/crates/markup5ever-0.16.0.crate) = 0ba2225413ed418d540a2c8247d794f4b0527a021da36f69c05344d716dc44c1
+SIZE (rust/crates/markup5ever-0.16.0.crate) = 37993
+SHA256 (rust/crates/match_token-0.1.0.crate) = 88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b
+SIZE (rust/crates/match_token-0.1.0.crate) = 4903
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/mime-0.3.17.crate) = 6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a
+SIZE (rust/crates/mime-0.3.17.crate) = 15712
+SHA256 (rust/crates/mime_guess-2.0.5.crate) = f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e
+SIZE (rust/crates/mime_guess-2.0.5.crate) = 27166
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/miniz_oxide-0.8.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a
+SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065
+SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd
+SIZE (rust/crates/mio-1.0.3.crate) = 103703
+SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
+SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
+SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
+SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
+SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
+SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
+SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
+SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
+SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
+SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078
+SIZE (rust/crates/phf-0.11.3.crate) = 23231
+SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a
+SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741
+SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
+SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
+SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
+SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
+SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
+SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c
+SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
+SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e
+SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258
+SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
+SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
+SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c
+SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
+SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778
+SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820
+SHA256 (rust/crates/psl-types-2.0.11.crate) = 33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac
+SIZE (rust/crates/psl-types-2.0.11.crate) = 7959
+SHA256 (rust/crates/publicsuffix-2.3.0.crate) = 6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf
+SIZE (rust/crates/publicsuffix-2.3.0.crate) = 87890
+SHA256 (rust/crates/pyo3-0.24.1.crate) = 17da310086b068fbdcefbba30aeb3721d5bb9af8db4987d6735b2183ca567229
+SIZE (rust/crates/pyo3-0.24.1.crate) = 1113050
+SHA256 (rust/crates/pyo3-build-config-0.24.1.crate) = e27165889bd793000a098bb966adc4300c312497ea25cf7a690a9f0ac5aa5fc1
+SIZE (rust/crates/pyo3-build-config-0.24.1.crate) = 34020
+SHA256 (rust/crates/pyo3-ffi-0.24.1.crate) = 05280526e1dbf6b420062f3ef228b78c0c54ba94e157f5cb724a609d0f2faabc
+SIZE (rust/crates/pyo3-ffi-0.24.1.crate) = 76435
+SHA256 (rust/crates/pyo3-log-0.12.3.crate) = 7079e412e909af5d6be7c04a7f29f6a2837a080410e1c529c9dee2c367383db4
+SIZE (rust/crates/pyo3-log-0.12.3.crate) = 16706
+SHA256 (rust/crates/pyo3-macros-0.24.1.crate) = 5c3ce5686aa4d3f63359a5100c62a127c9f15e8398e5fdeb5deef1fed5cd5f44
+SIZE (rust/crates/pyo3-macros-0.24.1.crate) = 8866
+SHA256 (rust/crates/pyo3-macros-backend-0.24.1.crate) = f4cf6faa0cbfb0ed08e89beb8103ae9724eb4750e3a78084ba4017cbe94f3855
+SIZE (rust/crates/pyo3-macros-backend-0.24.1.crate) = 72588
+SHA256 (rust/crates/pythonize-0.24.0.crate) = d5bcac0d0b71821f0d69e42654f1e15e5c94b85196446c4de9588951a2117e7b
+SIZE (rust/crates/pythonize-0.24.0.crate) = 18337
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5
+SIZE (rust/crates/r-efi-5.2.0.crate) = 64764
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand-0.9.0.crate) = 3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94
+SIZE (rust/crates/rand-0.9.0.crate) = 97798
+SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
+SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
+SHA256 (rust/crates/redox_syscall-0.5.11.crate) = d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3
+SIZE (rust/crates/redox_syscall-0.5.11.crate) = 30300
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/rquest-2.2.1.crate) = b5037287a38246515a36794ee0e475ea0bd4f3873c06229680287a52dc428ec9
+SIZE (rust/crates/rquest-2.2.1.crate) = 205106
+SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
+SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
+SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c
+SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933
+SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2
+SIZE (rust/crates/rustversion-1.0.20.crate) = 20666
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
+SIZE (rust/crates/serde-1.0.219.crate) = 78983
+SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
+SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
+SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373
+SIZE (rust/crates/serde_json-1.0.140.crate) = 154852
+SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
+SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/signal-hook-registry-1.4.2.crate) = a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1
+SIZE (rust/crates/signal-hook-registry-1.4.2.crate) = 18064
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
+SIZE (rust/crates/slab-0.4.9.crate) = 17108
+SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9
+SIZE (rust/crates/smallvec-1.15.0.crate) = 38113
+SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef
+SIZE (rust/crates/socket2-0.5.9.crate) = 57432
+SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
+SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
+SHA256 (rust/crates/string_cache-0.8.9.crate) = bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f
+SIZE (rust/crates/string_cache-0.8.9.crate) = 17408
+SHA256 (rust/crates/string_cache_codegen-0.5.4.crate) = c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0
+SIZE (rust/crates/string_cache_codegen-0.5.4.crate) = 9406
+SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0
+SIZE (rust/crates/syn-2.0.100.crate) = 297947
+SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
+SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
+SHA256 (rust/crates/synstructure-0.13.1.crate) = c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971
+SIZE (rust/crates/synstructure-0.13.1.crate) = 18327
+SHA256 (rust/crates/system-configuration-0.6.1.crate) = 3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b
+SIZE (rust/crates/system-configuration-0.6.1.crate) = 17935
+SHA256 (rust/crates/system-configuration-sys-0.6.0.crate) = 8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4
+SIZE (rust/crates/system-configuration-sys-0.6.0.crate) = 11090
+SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a
+SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923
+SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
+SIZE (rust/crates/tendril-0.4.3.crate) = 37210
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708
+SIZE (rust/crates/thiserror-2.0.12.crate) = 28693
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d
+SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141
+SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
+SIZE (rust/crates/time-0.3.41.crate) = 138369
+SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
+SIZE (rust/crates/time-core-0.1.4.crate) = 8422
+SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49
+SIZE (rust/crates/time-macros-0.2.22.crate) = 24604
+SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f
+SIZE (rust/crates/tinystr-0.7.6.crate) = 16971
+SHA256 (rust/crates/tokio-1.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48
+SIZE (rust/crates/tokio-1.44.2.crate) = 841618
+SHA256 (rust/crates/tokio-boring2-4.15.11.crate) = 17321b261a835fc4b7211ca05011d7ffbd4e355bc29fb8098d654798f54def90
+SIZE (rust/crates/tokio-boring2-4.15.11.crate) = 23131
+SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
+SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
+SHA256 (rust/crates/tokio-socks-0.5.2.crate) = 0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f
+SIZE (rust/crates/tokio-socks-0.5.2.crate) = 22102
+SHA256 (rust/crates/tokio-util-0.7.14.crate) = 6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034
+SIZE (rust/crates/tokio-util-0.7.14.crate) = 118861
+SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
+SIZE (rust/crates/tower-0.5.2.crate) = 109417
+SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e
+SIZE (rust/crates/tower-layer-0.3.3.crate) = 6180
+SHA256 (rust/crates/tower-service-0.3.3.crate) = 8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3
+SIZE (rust/crates/tower-service-0.3.3.crate) = 6950
+SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
+SIZE (rust/crates/tracing-0.1.41.crate) = 82448
+SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d
+SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280
+SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c
+SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434
+SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
+SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
+SHA256 (rust/crates/typed-builder-0.20.1.crate) = cd9d30e3a08026c78f246b173243cf07b3696d274debd26680773b6773c2afc7
+SIZE (rust/crates/typed-builder-0.20.1.crate) = 21746
+SHA256 (rust/crates/typed-builder-macro-0.20.1.crate) = 3c36781cc0e46a83726d9879608e4cf6c2505237e263a8eb8c24502989cfdb28
+SIZE (rust/crates/typed-builder-macro-0.20.1.crate) = 21265
+SHA256 (rust/crates/unicase-2.8.1.crate) = 75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539
+SIZE (rust/crates/unicase-2.8.1.crate) = 24088
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/unicode-width-0.2.0.crate) = 1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd
+SIZE (rust/crates/unicode-width-0.2.0.crate) = 271509
+SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3
+SIZE (rust/crates/unindent-0.2.4.crate) = 7422
+SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
+SIZE (rust/crates/url-2.5.4.crate) = 81097
+SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
+SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
+SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246
+SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736
+SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
+SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e
+SIZE (rust/crates/want-0.3.1.crate) = 6398
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3
+SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921
+SHA256 (rust/crates/webpki-root-certs-0.26.8.crate) = 09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4
+SIZE (rust/crates/webpki-root-certs-0.26.8.crate) = 177483
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38
+SIZE (rust/crates/windows-link-0.1.1.crate) = 6154
+SHA256 (rust/crates/windows-registry-0.5.1.crate) = ad1da3e436dc7653dfdf3da67332e22bff09bb0e28b0239e1624499c7830842e
+SIZE (rust/crates/windows-registry-0.5.1.crate) = 13222
+SHA256 (rust/crates/windows-result-0.3.2.crate) = c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252
+SIZE (rust/crates/windows-result-0.3.2.crate) = 13399
+SHA256 (rust/crates/windows-strings-0.4.0.crate) = 7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97
+SIZE (rust/crates/windows-strings-0.4.0.crate) = 13939
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
+SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
+SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936
+SIZE (rust/crates/write16-1.0.0.crate) = 7218
+SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51
+SIZE (rust/crates/writeable-0.5.5.crate) = 22354
+SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40
+SIZE (rust/crates/yoke-0.7.5.crate) = 29673
+SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154
+SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525
+SHA256 (rust/crates/zerocopy-0.8.24.crate) = 2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879
+SIZE (rust/crates/zerocopy-0.8.24.crate) = 243777
+SHA256 (rust/crates/zerocopy-derive-0.8.24.crate) = a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be
+SIZE (rust/crates/zerocopy-derive-0.8.24.crate) = 86487
+SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
+SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
+SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
+SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
+SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079
+SIZE (rust/crates/zerovec-0.10.4.crate) = 126398
+SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6
+SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438
+SHA256 (rust/crates/zstd-0.13.3.crate) = e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a
+SIZE (rust/crates/zstd-0.13.3.crate) = 30514
+SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d
+SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350
+SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237
+SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847
+SHA256 (deedy5-primp-v0.15.0_GH0.tar.gz) = 2792c2b7895d73069a6cb235b8c0624fb0ed339a00da5c3a2f09982f5bb47163
+SIZE (deedy5-primp-v0.15.0_GH0.tar.gz) = 105214
diff --git a/www/py-primp/files/cc b/www/py-primp/files/cc
new file mode 100755
index 000000000000..519a39883101
--- /dev/null
+++ b/www/py-primp/files/cc
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+NEW_CMD="/usr/bin/cc"
+
+for a in "$@"; do
+ if [ "$a" != "-lstdc++" ]; then
+ NEW_CMD="$NEW_CMD $a"
+ fi
+done
+
+$NEW_CMD
diff --git a/www/py-primp/pkg-descr b/www/py-primp/pkg-descr
new file mode 100644
index 000000000000..e106e3182a23
--- /dev/null
+++ b/www/py-primp/pkg-descr
@@ -0,0 +1,16 @@
+PRIMP (Python Requests IMPersonate) is a high-performance HTTP client library
+for Python, designed to mimic the behavior of real web browsers. It extends
+the popular `requests` library by adding advanced impersonation capabilities.
+
+Key features include:
+* Browser Fingerprinting**: Mimics TLS and HTTP/2 fingerprints of various
+ popular web browsers (e.g., Chrome, Firefox, Safari) to evade detection by
+ anti-bot systems.
+* High Performance**: Optimized for speed, making it suitable for demanding
+ web scraping and automation tasks.
+* Ease of Use**: Maintains the familiar and user-friendly API of the
+ `requests` library.
+
+PRIMP is ideal for developers and researchers who need to interact with websites
+that employ sophisticated bot detection mechanisms, enabling more robust web
+scraping, automated testing, and data collection.