diff options
| author | Yuri Victorovich <yuri@FreeBSD.org> | 2026-05-16 16:25:21 +0000 |
|---|---|---|
| committer | Yuri Victorovich <yuri@FreeBSD.org> | 2026-05-16 18:50:23 +0000 |
| commit | a37b6efd913f102e870c6a759dafde17aefb477e (patch) | |
| tree | 8432c3f2ee1118be489915316b6b3c04be2dd7ac | |
| parent | 264b611f65fb70953e54e866cc2e6537b40d8027 (diff) | |
devel/py-cachebox: New port: Fastest memoizing and caching Python library written in Rust
| -rw-r--r-- | devel/Makefile | 1 | ||||
| -rw-r--r-- | devel/py-cachebox/Makefile | 77 | ||||
| -rw-r--r-- | devel/py-cachebox/distinfo | 73 | ||||
| -rw-r--r-- | devel/py-cachebox/pkg-descr | 4 |
4 files changed, 155 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 55649bc8b7b3..4a9a6e136883 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -4673,6 +4673,7 @@ SUBDIR += py-bump2version SUBDIR += py-bytecode SUBDIR += py-cabby + SUBDIR += py-cachebox SUBDIR += py-cached-path SUBDIR += py-cached-property SUBDIR += py-cachetools diff --git a/devel/py-cachebox/Makefile b/devel/py-cachebox/Makefile new file mode 100644 index 000000000000..aff917be54d0 --- /dev/null +++ b/devel/py-cachebox/Makefile @@ -0,0 +1,77 @@ +PORTNAME= cachebox +DISTVERSION= 5.2.3 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Fastest memoizing and caching Python library written in Rust +WWW= https://github.com/awolverp/cachebox + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.8<2.0:devel/py-maturin@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0:devel/py-pytest-asyncio@${PY_FLAVOR} + +USES= cargo python +USE_PYTHON= autoplist concurrent pep517 pytest + +CARGO_CRATES= autocfg-1.4.0 \ + bitflags-2.9.0 \ + cc-1.2.40 \ + cfg-if-1.0.3 \ + fastrand-2.3.0 \ + find-msvc-tools-0.1.4 \ + hashbrown-0.14.5 \ + heck-0.5.0 \ + indoc-2.0.6 \ + libc-0.2.171 \ + libmimalloc-sys-0.1.44 \ + lock_api-0.4.14 \ + memoffset-0.9.1 \ + mimalloc-0.1.48 \ + once_cell-1.21.3 \ + parking_lot-0.12.5 \ + parking_lot_core-0.9.12 \ + portable-atomic-1.11.0 \ + proc-macro2-1.0.94 \ + pyo3-0.27.1 \ + pyo3-build-config-0.27.1 \ + pyo3-ffi-0.27.1 \ + pyo3-macros-0.27.1 \ + pyo3-macros-backend-0.27.1 \ + python3-dll-a-0.2.14 \ + quote-1.0.40 \ + redox_syscall-0.5.10 \ + scopeguard-1.2.0 \ + shlex-1.3.0 \ + smallvec-1.14.0 \ + syn-2.0.100 \ + target-lexicon-0.13.2 \ + unicode-ident-1.0.18 \ + unindent-0.2.4 \ + windows-link-0.2.0 +CARGO_BUILD= no +CARGO_INSTALL= no +CARGO_TEST= no + +MAKE_ENV= ${CARGO_ENV} +TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} + +pre-test: + ${CP} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/cachebox/_core*.so \ + ${WRKSRC}/python/cachebox/ + +do-test: + @cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest \ + -p no:checkdocs -p no:xdist -v -rs -o addopts= \ + -k "not test_eq_implemetation" \ + --ignore=cargo-crates --ignore=python/cachebox python/tests + +BINARY_ALIAS= python3=${PYTHON_CMD} + +# the tes python/tests/test_caches.py::TestLFUCache::test_update_sizeof_error_preserves_entry hangs, see https://github.com/awolverp/cachebox/issues/52 + +.include <bsd.port.mk> diff --git a/devel/py-cachebox/distinfo b/devel/py-cachebox/distinfo new file mode 100644 index 000000000000..2f5740e1a025 --- /dev/null +++ b/devel/py-cachebox/distinfo @@ -0,0 +1,73 @@ +TIMESTAMP = 1778916885 +SHA256 (cachebox-5.2.3.tar.gz) = b1f68246685aa739bbbd2734befb1465363a1e1042407c154feadb065f17a099 +SIZE (cachebox-5.2.3.tar.gz) = 63686 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd +SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/cc-1.2.40.crate) = e1d05d92f4b1fd76aad469d46cdd858ca761576082cd37df81416691e50199fb +SIZE (rust/crates/cc-1.2.40.crate) = 91094 +SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9 +SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719 +SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be +SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 +SHA256 (rust/crates/find-msvc-tools-0.1.4.crate) = 52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127 +SIZE (rust/crates/find-msvc-tools-0.1.4.crate) = 30817 +SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 +SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 +SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea +SIZE (rust/crates/heck-0.5.0.crate) = 11517 +SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd +SIZE (rust/crates/indoc-2.0.6.crate) = 17164 +SHA256 (rust/crates/libc-0.2.171.crate) = c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6 +SIZE (rust/crates/libc-0.2.171.crate) = 785246 +SHA256 (rust/crates/libmimalloc-sys-0.1.44.crate) = 667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870 +SIZE (rust/crates/libmimalloc-sys-0.1.44.crate) = 451625 +SHA256 (rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965 +SIZE (rust/crates/lock_api-0.4.14.crate) = 29249 +SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a +SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 +SHA256 (rust/crates/mimalloc-0.1.48.crate) = e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8 +SIZE (rust/crates/mimalloc-0.1.48.crate) = 4742 +SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d +SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 +SHA256 (rust/crates/parking_lot-0.12.5.crate) = 93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a +SIZE (rust/crates/parking_lot-0.12.5.crate) = 46735 +SHA256 (rust/crates/parking_lot_core-0.9.12.crate) = 2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1 +SIZE (rust/crates/parking_lot_core-0.9.12.crate) = 34110 +SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e +SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/proc-macro2-1.0.94.crate) = a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84 +SIZE (rust/crates/proc-macro2-1.0.94.crate) = 52391 +SHA256 (rust/crates/pyo3-0.27.1.crate) = 37a6df7eab65fc7bee654a421404947e10a0f7085b6951bf2ea395f4659fb0cf +SIZE (rust/crates/pyo3-0.27.1.crate) = 1172212 +SHA256 (rust/crates/pyo3-build-config-0.27.1.crate) = f77d387774f6f6eec64a004eac0ed525aab7fa1966d94b42f743797b3e395afb +SIZE (rust/crates/pyo3-build-config-0.27.1.crate) = 35565 +SHA256 (rust/crates/pyo3-ffi-0.27.1.crate) = 2dd13844a4242793e02df3e2ec093f540d948299a6a77ea9ce7afd8623f542be +SIZE (rust/crates/pyo3-ffi-0.27.1.crate) = 78517 +SHA256 (rust/crates/pyo3-macros-0.27.1.crate) = eaf8f9f1108270b90d3676b8679586385430e5c0bb78bb5f043f95499c821a71 +SIZE (rust/crates/pyo3-macros-0.27.1.crate) = 8918 +SHA256 (rust/crates/pyo3-macros-backend-0.27.1.crate) = 70a3b2274450ba5288bc9b8c1b69ff569d1d61189d4bff38f8d22e03d17f932b +SIZE (rust/crates/pyo3-macros-backend-0.27.1.crate) = 82521 +SHA256 (rust/crates/python3-dll-a-0.2.14.crate) = d381ef313ae70b4da5f95f8a4de773c6aa5cd28f73adec4b4a31df70b66780d8 +SIZE (rust/crates/python3-dll-a-0.2.14.crate) = 103489 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/redox_syscall-0.5.10.crate) = 0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1 +SIZE (rust/crates/redox_syscall-0.5.10.crate) = 30226 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/smallvec-1.14.0.crate) = 7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd +SIZE (rust/crates/smallvec-1.14.0.crate) = 35561 +SHA256 (rust/crates/syn-2.0.100.crate) = b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0 +SIZE (rust/crates/syn-2.0.100.crate) = 297947 +SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a +SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 +SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3 +SIZE (rust/crates/unindent-0.2.4.crate) = 7422 +SHA256 (rust/crates/windows-link-0.2.0.crate) = 45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65 +SIZE (rust/crates/windows-link-0.2.0.crate) = 6170 diff --git a/devel/py-cachebox/pkg-descr b/devel/py-cachebox/pkg-descr new file mode 100644 index 000000000000..02fea073701a --- /dev/null +++ b/devel/py-cachebox/pkg-descr @@ -0,0 +1,4 @@ +cachebox is the fastest memoizing and caching Python library, written in Rust. +It supports 7 caching algorithms: FIFO, LRU, LFU, RR, TTL, VTTL, and basic +cache. Features include thread safety, zero external dependencies, and +10-50x performance improvements over comparable Python caching libraries. |
