Skip to main content

signers

crates.io PyPI docs.rs License: MIT OR Apache-2.0

signers is a typed front-end for code signing tools, usable from async or blocking Rust and from Python. It runs the real tool and gives each of its operations a small API that only accepts the options that operation honours. It is meant for scripting and automating signing: re-signing binaries after patching them, or signing as a step of build tooling.

Supported tools: codesign (macOS). Planned: productsign, and pkgutil for checking signatures.

use signers::codesign;

// Re-sign a binary after patching it: `force` replaces the signature the patch broke.
codesign::sign_adhoc("patched.dylib").force(true).await?;
from signers import codesign

# Re-sign a binary after patching it: `force` replaces the signature the patch broke.
codesign.sign_adhoc("patched.dylib", force=True)

Complete examples for Rust (async and blocking) and Python (sync and asyncio) are in examples/.

Installation

signers runs on macOS 26 or later; some options need macOS 27, as their docs say.

Rust: the async API comes with the default async feature.

cargo add signers

The blocking feature adds signers::codesign::blocking, alongside the async API.

cargo add signers --features blocking

Python: 3.11 or later.

pip install signers

To build from a checkout, see CONTRIBUTING.md.

Metadata

Release files for signers 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for signers 0.1.0
File Size Uploaded Provenance
signers-0.1.0.tar.gz 160.5 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for signers 0.1.0
File Interpreter ABI Platform
signers-0.1.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
signers-0.1.0-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 2.1 MB

Release files / signers-0.1.0.tar.gz

Download URL signers-0.1.0.tar.gz
Size 160.5 kB
Tags Source
SHA-256 checksum
How to use checksums
79e14b761b00b8ba49753b32472dfa388987b222234fd55ae75016dabe4d0386
BLAKE2b-256 checksum
How to use checksums
2694b549714f98d8753c5ea4608d34d743d961ca2da634866730e9a7069490fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / signers-0.1.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL signers-0.1.0-cp311-abi3-macosx_11_0_arm64.whl
Size 970.0 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1e94b388cd16634f86cb2283312541ab11d765ab0221be77ef7a2098dfe7d0bd
BLAKE2b-256 checksum
How to use checksums
fb4f139fda992e54f8865ec4738dbc8dafc0119313ab440a61d9e58f7a8b81fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / signers-0.1.0-cp311-abi3-macosx_10_12_x86_64.whl

Download URL signers-0.1.0-cp311-abi3-macosx_10_12_x86_64.whl
Size 975.8 kB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9ccabcbbb26f6d0f428e0c8b9ac3ebbfdd5262dffb50e128ec3a440d306d88f8
BLAKE2b-256 checksum
How to use checksums
2b6516421b01de03ce95f5bfbcbf59516e2aef201d93886d10ae2dfe6be41cd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for signers 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 3 files in this release have been uploaded with provenance metadata.

Select from 3 files

Attestation for signers-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

3 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page