beaconcrypt 0.3.7

Cryptographic transport for C2 channels
Documentation
[build-system]
requires = ["maturin>=1.14,<2.0" ,"pip"]
build-backend = "maturin"

[project]
name = "beaconcrypt"
requires-python = ">=3.11"
classifiers = [
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
]
dynamic = ["version"]

[tool.maturin]
bindings = "pyo3"
features = ["pybinds"]

[tool.uv]
# `maturin develop` owns the native extension installed in the development
# environment. Prevent uv's automatic project sync from replacing it with a
# cached editable build before commands such as `uv run pytest`.
package = false

[dependency-groups]
dev = [
    "black>=26.5.1",
    "pytest>=9.1.1",
    "maturin>=1.14,<2.0"
]

[tool.cibuildwheel]
# Use uv and build
build-frontend = "build[uv]"

[tool.cibuildwheel.linux]
before-all = """
if command -v dnf >/dev/null 2>&1; then
  dnf install -y capnproto capnproto-devel libffi-devel
elif command -v yum >/dev/null 2>&1; then
  yum install -y capnproto capnproto-devel libffi-devel
elif command -v microdnf >/dev/null 2>&1; then
  microdnf install -y capnproto capnproto-devel libffi-devel
elif command -v apk >/dev/null 2>&1; then
  apk add --no-cache capnproto capnproto-dev libffi-dev
else
  echo "No supported package manager found for installing capnproto" >&2
  exit 1
fi
"""

[tool.cibuildwheel.windows]
before-all = "choco install capnproto -y"

[tool.cibuildwheel.config-settings]
build-args = "--features pybinds"