git: 8a3afc303f85 - main - security/py-blake3: New port: Python bindings for the BLAKE3 cryptographic hash function
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 18 Mar 2026 15:48:23 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8a3afc303f85d560584bdd2172e00bd75c60f057
commit 8a3afc303f85d560584bdd2172e00bd75c60f057
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-03-18 14:44:57 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-03-18 15:48:09 +0000
security/py-blake3: New port: Python bindings for the BLAKE3 cryptographic hash function
---
security/Makefile | 1 +
security/py-blake3/Makefile | 69 ++++++++++++++++++++++++++++++++++++++++++
security/py-blake3/distinfo | 71 ++++++++++++++++++++++++++++++++++++++++++++
security/py-blake3/pkg-descr | 11 +++++++
4 files changed, 152 insertions(+)
diff --git a/security/Makefile b/security/Makefile
index 233f7c48ea4d..cefe74b185ac 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -899,6 +899,7 @@
SUBDIR += py-base58
SUBDIR += py-bcrypt
SUBDIR += py-bitbox02
+ SUBDIR += py-blake3
SUBDIR += py-btchip-python
SUBDIR += py-cart
SUBDIR += py-cerealizer
diff --git a/security/py-blake3/Makefile b/security/py-blake3/Makefile
new file mode 100644
index 000000000000..ea2fbfb72d6e
--- /dev/null
+++ b/security/py-blake3/Makefile
@@ -0,0 +1,69 @@
+PORTNAME= blake3
+DISTVERSION= 1.0.8
+CATEGORIES= security python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Python bindings for the BLAKE3 cryptographic hash function
+WWW= https://github.com/oconnor663/blake3-py
+
+LICENSE= APACHE20 MIT
+LICENSE_COMB= dual
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-rust>0:devel/py-setuptools-rust@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}maturin>0:devel/py-maturin@${PY_FLAVOR}
+
+USES= cargo python
+USE_PYTHON= pep517 autoplist pytest
+
+CARGO_CRATES= arrayref-0.3.9 \
+ arrayvec-0.7.6 \
+ autocfg-1.5.0 \
+ blake3-1.8.2 \
+ cc-1.2.41 \
+ cfg-if-1.0.3 \
+ constant_time_eq-0.3.1 \
+ crossbeam-deque-0.8.6 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-utils-0.8.21 \
+ either-1.15.0 \
+ find-msvc-tools-0.1.4 \
+ heck-0.5.0 \
+ hex-0.4.3 \
+ indoc-2.0.6 \
+ libc-0.2.177 \
+ memmap2-0.9.8 \
+ memoffset-0.9.1 \
+ once_cell-1.21.3 \
+ portable-atomic-1.11.1 \
+ proc-macro2-1.0.101 \
+ pyo3-0.26.0 \
+ pyo3-build-config-0.26.0 \
+ pyo3-ffi-0.26.0 \
+ pyo3-macros-0.26.0 \
+ pyo3-macros-backend-0.26.0 \
+ quote-1.0.41 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
+ shlex-1.3.0 \
+ syn-2.0.106 \
+ target-lexicon-0.13.3 \
+ unicode-ident-1.0.19 \
+ unindent-0.2.4
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+CARGO_TEST= no
+
+TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC= ${WRKSRC}/tests
+TEST_ARGS= test_blake3.py
+
+# tests as of 1.0.8:
+# Results (1.40s):
+# 81 passed
+# 1 warning
+
+.include <bsd.port.mk>
diff --git a/security/py-blake3/distinfo b/security/py-blake3/distinfo
new file mode 100644
index 000000000000..4ca88b507895
--- /dev/null
+++ b/security/py-blake3/distinfo
@@ -0,0 +1,71 @@
+TIMESTAMP = 1773844932
+SHA256 (blake3-1.0.8.tar.gz) = 513cc7f0f5a7c035812604c2c852a0c1468311345573de647e310aca4ab165ba
+SIZE (blake3-1.0.8.tar.gz) = 117308
+SHA256 (rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb
+SIZE (rust/crates/arrayref-0.3.9.crate) = 9186
+SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/blake3-1.8.2.crate) = 3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0
+SIZE (rust/crates/blake3-1.8.2.crate) = 205967
+SHA256 (rust/crates/cc-1.2.41.crate) = ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7
+SIZE (rust/crates/cc-1.2.41.crate) = 91154
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
+SHA256 (rust/crates/constant_time_eq-0.3.1.crate) = 7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6
+SIZE (rust/crates/constant_time_eq-0.3.1.crate) = 11561
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+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/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
+SIZE (rust/crates/indoc-2.0.6.crate) = 17164
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/memmap2-0.9.8.crate) = 843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7
+SIZE (rust/crates/memmap2-0.9.8.crate) = 34478
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483
+SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/pyo3-0.26.0.crate) = 7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383
+SIZE (rust/crates/pyo3-0.26.0.crate) = 1151579
+SHA256 (rust/crates/pyo3-build-config-0.26.0.crate) = 4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f
+SIZE (rust/crates/pyo3-build-config-0.26.0.crate) = 34309
+SHA256 (rust/crates/pyo3-ffi-0.26.0.crate) = 025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105
+SIZE (rust/crates/pyo3-ffi-0.26.0.crate) = 78247
+SHA256 (rust/crates/pyo3-macros-0.26.0.crate) = 2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded
+SIZE (rust/crates/pyo3-macros-0.26.0.crate) = 8906
+SHA256 (rust/crates/pyo3-macros-backend-0.26.0.crate) = 100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf
+SIZE (rust/crates/pyo3-macros-backend-0.26.0.crate) = 81809
+SHA256 (rust/crates/quote-1.0.41.crate) = ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1
+SIZE (rust/crates/quote-1.0.41.crate) = 31408
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
+SHA256 (rust/crates/target-lexicon-0.13.3.crate) = df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c
+SIZE (rust/crates/target-lexicon-0.13.3.crate) = 28498
+SHA256 (rust/crates/unicode-ident-1.0.19.crate) = f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d
+SIZE (rust/crates/unicode-ident-1.0.19.crate) = 47480
+SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3
+SIZE (rust/crates/unindent-0.2.4.crate) = 7422
diff --git a/security/py-blake3/pkg-descr b/security/py-blake3/pkg-descr
new file mode 100644
index 000000000000..0b5c1288c6fe
--- /dev/null
+++ b/security/py-blake3/pkg-descr
@@ -0,0 +1,11 @@
+Python bindings for the official Rust implementation of BLAKE3.
+
+BLAKE3 is a cryptographic hash function that is much faster than MD5, SHA-1,
+SHA-2, and SHA-3, yet is at least as secure as the latest standard, SHA-3.
+
+Features:
+- Fast hashing (up to 2-3x faster than SHA-256)
+- Parallelism using multiple threads
+- Extendable output (XOF)
+- Keyed hashing and key derivation
+- Compatible with Python's hashlib module