Skip to main content

Reusable binary wheel packaging for PJSUA2 Python bindings

Project description

pjsua2-python

Reusable binary wheel packaging for PJSUA2 Python bindings built from upstream pjproject.

This repository is designed for the problem you called out directly:

  • no official wheel
  • brittle local builds
  • repeated manual SWIG compilation per project

The repo is wheel-first. It builds PJSIP/PJSUA2, stages the generated SWIG artifacts into a Python package, and emits installable wheels with cibuildwheel.

Packaging model

pjsua2-python is a native extension package, not a pure Python package.

The package version should match the bundled pjproject version exactly. This avoids the usual confusion of having a separate wrapper version and an upstream PJSIP version.

Examples:

  • pjsua2-python==2.15.1 packages pjproject 2.15.1
  • future pjsua2-python==2.16.x should package pjproject 2.16.x

This repository now treats pjsua2/_version.py as the single source of truth. The package metadata and CI build default both derive from that file automatically.

That means pip install pjsua2-python works by publishing multiple wheels, then letting pip choose the right one for the current machine:

  • Linux x86_64
  • macOS x86_64
  • macOS arm64
  • Windows AMD64
  • Python 3.8 through 3.12

For this scope, that means 20 wheels total.

There is no correct single binary wheel that works unchanged across Linux, macOS, and Windows. Serious projects like NumPy and PyTorch solve this exactly the same way: one wheel per platform and per Python ABI.

Target outputs

Examples:

  • pjsua2_python-2.15.1-cp38-cp38-manylinux2014_x86_64.whl
  • pjsua2_python-2.15.1-cp311-cp311-macosx_13_0_x86_64.whl
  • pjsua2_python-2.15.1-cp311-cp311-macosx_14_0_arm64.whl
  • pjsua2_python-2.15.1-cp311-cp311-win_amd64.whl

What this repo does

  1. Clones pjproject
  2. Checks out a configured release/tag/branch
  3. Builds upstream PJSIP and the SWIG Python binding
  4. Copies generated artifacts into the local pjsua2 package
  5. Builds wheels for each Python/platform target with cibuildwheel

Repository layout

pjsua2-python/
├── .github/workflows/build.yml
├── pjsua2/
│   ├── __init__.py
│   └── _version.py
├── scripts/
│   ├── build_pjsip_linux.sh
│   ├── build_pjsip_macos.sh
│   ├── build_pjsip_windows.ps1
│   ├── build_linux_wheel.sh
│   ├── build_macos_wheel.sh
│   ├── build_windows_wheel.ps1
│   ├── check_linux_build_tools.sh
│   ├── check_macos_build_tools.sh
│   ├── check_windows_build_tools.ps1
│   ├── config_site.h
│   ├── install_linux_build_deps.sh
│   ├── install_macos_build_deps.sh
│   ├── install_windows_build_deps.ps1
│   ├── stage_bindings.py
│   └── test_import.py
├── MANIFEST.in
└── pyproject.toml

Supported build targets

  • Linux: manylinux2014_x86_64
  • macOS Intel: x86_64
  • macOS Apple Silicon: arm64
  • Windows: AMD64
  • Python: 3.8 through 3.12

Default upstream version

The workflow defaults to the version declared in pjsua2/_version.py.

This should stay equal to the Python package version. Release tags should follow the same convention, for example v2.15.1.

Override it when needed:

PJSIP_REF=master python -m cibuildwheel --output-dir dist

If you want strict reproducibility, keep using a tag. If you want the newest upstream commit, set PJSIP_REF=master or a commit SHA.

Design choices

1. Wheel-first, not source-first

This repo is optimized for prebuilt wheels. That is the real operational win. Source installs are intentionally not the primary path.

2. Minimal upstream feature set

The supplied config_site.h disables video and sound-device support to reduce build friction and external library sprawl. That keeps wheel creation practical.

If your application needs additional PJMEDIA features, expand scripts/config_site.h and the dependency install scripts deliberately.

3. Static-first upstream linking

The build scripts prefer static upstream linkage to reduce runtime sidecar libraries and keep pip install closer to a self-contained experience.

Local build examples

Linux

Full build (all Python versions)

./scripts/install_linux_build_deps.sh
python -m pip install --upgrade pip build cibuildwheel auditwheel
python -m cibuildwheel --platform linux --output-dir dist

This pulls the manylinux2014 Docker image and builds wheels for cp38–cp312 inside the same container CI uses. Resulting wheels land in dist/.

Quick single-version validation (recommended for iterating on build script changes)

Use the focused helper to test cp312 only (the most likely to break due to distutils removal):

# Prerequisites — one-time setup
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo pip3 install --break-system-packages cibuildwheel

# Run the cp312-only test (~5 min, uses the exact manylinux2014 Docker image CI uses)
bash scripts/test_local_cp312.sh

The script at scripts/test_local_cp312.sh sets CIBW_BUILD=cp312-* and runs cibuildwheel inside the manylinux2014 container, emitting the wheel into dist/. Failures are identical to what CI would show, without the 15-minute wait per push.

Why not just run bash scripts/build_pjsip_linux.sh directly? The host build uses your local Python and a cached build/pjproject tree, so it passes even when the CI container would fail (missing setuptools, wrong Python version, stale build artifacts). Always use the Docker-based test to validate changes to the build scripts.

macOS

./scripts/install_macos_build_deps.sh
python -m pip install --upgrade pip build cibuildwheel delocate
python -m cibuildwheel --platform macos --output-dir dist

If you run scripts/build_pjsip_macos.sh directly, it now checks for required tools before starting the build.

Windows

./scripts/install_windows_build_deps.ps1
py -m pip install --upgrade pip build cibuildwheel
py -m cibuildwheel --platform windows --output-dir dist

For a host-built Windows wheel after staging the native artifacts:

./scripts/build_windows_wheel.ps1

The Windows build path now checks for git, python, swig, and either msbuild or cl before starting.

macOS host wheel helper

./scripts/build_macos_wheel.sh

That helper builds the package on the current macOS host and runs delocate into wheelhouse/.

Verify a wheel

python -m pip install dist/*.whl
python -c "import pjsua2; print(pjsua2.Endpoint())"

If you use the local Linux helper script above, install from wheelhouse/*.whl instead.

GitHub Actions

The included workflow builds wheels on:

  • ubuntu-22.04
  • macos-15-intel for Intel
  • macos-14 for ARM
  • windows-2022

For tagged releases, the workflow now does four things in order:

  1. builds and tests all platform wheels
  2. builds and validates the source distribution
  3. creates a GitHub Release and attaches all wheels, the source tarball, and a SHA256SUMS.txt file
  4. publishes the same artifacts to PyPI when trusted publishing or a token is configured

Artifacts are still uploaded as workflow artifacts during the run, but tagged releases now also produce a proper GitHub Release section with downloadable build outputs.

GitHub Actions is the release authority for distributable wheels. Local host wheel helpers are mainly for validation and debugging.

Publishing

The full release and PyPI publishing procedure now lives in publish.md.

Keep the release order strict:

  1. fix GitHub Actions until all build and release jobs are green
  2. verify the generated artifacts on GitHub
  3. only then configure or use PyPI publishing

How pip install works for users

After the wheels are published to PyPI, users run:

pip install pjsua2-python

pip inspects the current machine:

  • OS
  • CPU architecture
  • Python version

Then it downloads the matching wheel automatically. Users do not choose among the 20 wheels manually.

Important caveats

Linux compatibility

Linux wheels are built against manylinux2014 to keep glibc compatibility broad.

Important distinction:

  • Local wheels built on a normal host reflect that host libc and OpenSSL baseline.
  • CI wheels built by cibuildwheel in the configured manylinux container are the portable artifacts you want to publish.

On this Ubuntu 24.04 host, the repaired local wheel validated successfully but landed at manylinux_2_39_x86_64, not manylinux2014_x86_64. That is expected for a host build and is exactly why the repo uses cibuildwheel for release artifacts.

macOS compatibility

Apple Silicon and Intel are built separately in the workflow. If you prefer universal2 later, change the workflow and CIBW_ARCHS strategy.

Windows build path

Windows is the most fragile target in the PJSIP ecosystem. The script here is structured for CI and upstream Python SWIG packaging, but you should expect occasional upstream breakage across Visual Studio and Python releases.

That is exactly why centralizing this in one repo is the right move.

Local vs release builds

  • Local helper scripts validate that the packaging flow works on a given machine.
  • Release wheels should come from cibuildwheel in CI.
  • On Linux specifically, the local repaired wheel policy reflects the host baseline, while CI should emit the intended manylinux2014 wheels.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pjsua2_python-2.15.1.tar.gz (17.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pjsua2_python-2.15.1-cp312-cp312-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pjsua2_python-2.15.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pjsua2_python-2.15.1-cp312-cp312-macosx_15_0_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pjsua2_python-2.15.1-cp312-cp312-macosx_14_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pjsua2_python-2.15.1-cp311-cp311-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pjsua2_python-2.15.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pjsua2_python-2.15.1-cp311-cp311-macosx_15_0_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

pjsua2_python-2.15.1-cp311-cp311-macosx_14_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pjsua2_python-2.15.1-cp310-cp310-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pjsua2_python-2.15.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pjsua2_python-2.15.1-cp310-cp310-macosx_15_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

pjsua2_python-2.15.1-cp310-cp310-macosx_14_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

pjsua2_python-2.15.1-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9Windows x86-64

pjsua2_python-2.15.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pjsua2_python-2.15.1-cp39-cp39-macosx_15_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

pjsua2_python-2.15.1-cp39-cp39-macosx_14_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

pjsua2_python-2.15.1-cp38-cp38-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.8Windows x86-64

pjsua2_python-2.15.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pjsua2_python-2.15.1-cp38-cp38-macosx_15_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.8macOS 15.0+ x86-64

pjsua2_python-2.15.1-cp38-cp38-macosx_14_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.8macOS 14.0+ ARM64

File details

Details for the file pjsua2_python-2.15.1.tar.gz.

File metadata

  • Download URL: pjsua2_python-2.15.1.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pjsua2_python-2.15.1.tar.gz
Algorithm Hash digest
SHA256 2bec67963c8e780f42b3776041e7c257996d0778de23f91d82be627be505f3b9
MD5 c7f4019e2d86852df57bfdf374921255
BLAKE2b-256 cb087e1d1a19b73d25c41ca0f860acfb4ce46f63ec4ae2d3e0f19b3db82d060d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1.tar.gz:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 505f4993a2ad45b85be77b2efbddd62db05097dc449f9365e5a3d80447686918
MD5 a635cbb861320f07b50e9aa3a6a5bda9
BLAKE2b-256 aec4a39b9985d38f9f99d83bc3fd200c904507ff5b7cd320ef45692acb1168a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp312-cp312-win_amd64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9579c19f7a28c7e2d2e10b7b387b33c7b0991023ea6a81a449aa00cb53555a92
MD5 ff1da62f33e8d399de5b5c54ca081e37
BLAKE2b-256 dde0dcc80b5a92c81a65facef2c596810d687fb96fe9b79aa9085d18570aa649

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 974f0e9afd724b7b87d9cdc3aadb3688da3a4c0383db6c5a6adb6f208c917d5b
MD5 d94fd789fd8c7153c8b26bddde7f8736
BLAKE2b-256 50d897ee7e309e3f8d1e190af78bbd26565e1c23d8f86e44be1f883f73c84475

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1f49e3c980f8371c5b480a2ba645b720d7606b7bdd1910a509d24c511d5d4853
MD5 bf30ef7d2d1cad263e6c5dabdfad8bf5
BLAKE2b-256 1fdaaf0aa3ddf228e159774b2ec115315e6c4d58bc4ded84ddd2d9072687bfcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fcc55e8cec907ddad1ab334a696301fc0fe2e72e187cdb3c55c68103926e5130
MD5 b282e7306f6000cfe2281b45c44c5bdf
BLAKE2b-256 7b90f34d5ad0566dc31e2b691c5cd4da3a9ca8e9beed368f57beb165059dc5c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp311-cp311-win_amd64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ec54a0fe853642806cf0da206f1ebb34a217705f6f8c8b300c5085d59ff410da
MD5 fd9a76c5929849d31be5dfc9e3fefaa0
BLAKE2b-256 08c8d88ed812c9d64843d6313b0f0f79df957047b5a01f0d868100de602b2de1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 a347c9fe491a258b24a3e33b912f1c2891305f708c1f0f0cdf5cf4b830439080
MD5 ea1d7c9c131e8b5792bedcc4ba1a52e6
BLAKE2b-256 0b3a178d6c980b03b4541a68e44cb1bc96234b179102b4c7ebed422863825fd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cf89b136a69162c80bf8d5db9620f2f1188145c2e5c497ebb904ad128fea0256
MD5 dfd9b2390d9021615aa614d48226ffc8
BLAKE2b-256 7f6043c68344c2b66ff76db771b664b981003c6917ef85eb83b42247041bae88

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b1a9b01e21717b7dd390f26661efbcfce20cd190c0c901f049d5724d2adcd1c7
MD5 e3e8ee95b935b780e5bdb05660c3c129
BLAKE2b-256 16b0b29c45e6b4755a9f026636e9ccb6d15072a6eef8311f2171075bba45ff35

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp310-cp310-win_amd64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ad83d8a33377c89f13cbc3dc3c76132bbc24adf0a2d05f7b0412a68b8773dcef
MD5 b5a4f8a6891790e58d90b3e3cb9576a2
BLAKE2b-256 5c6d2c21b5c5efb1cf348e2cd9d66f24d5702fea9b5777e6d5358c675bee2784

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 407b448e03c1dc6e2350e2c80737cf3f5e9308ba26c904f91be0b8e9baa00387
MD5 f026f04cca7d66e021f56ad32318d355
BLAKE2b-256 b321f49a509a256258aca3cd58bb77cb994a0fadb61ab9bf06f05fadf38f15d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6ea778f05ee22e1d89a7ec3c75ad8781e3961ef344ed1172da3ed4cad5c65118
MD5 c045e17b0b250dc3b217eb1ee3039a0d
BLAKE2b-256 ce1cb7f60def32dd339d0a744b9e684c601cb142545f6027911dd8ecc6e0729a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 046e907f5bf2248fb9b5d4aeca51531fb0c8a8bd3a12f7cb580cbe1f3dd083bb
MD5 4349af75697116c3f72e19dc0727a06f
BLAKE2b-256 8a4344d7f2d0fefab6ec55ba9cefab0f82da40824a2c9b711c0c3d17b7151eca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp39-cp39-win_amd64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6f0f2f5d251c995d73353a7d67723922c110d872df9778167f3b836d6e3748bc
MD5 751a64a6b7973f9dfe1079e165c82481
BLAKE2b-256 1e8b968c9a4d79a870ec695239fda15c74ba36e81545fbbef7b578df7fdeb279

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 e5eb83a05c7d94da5b36f16ff5e3d1360780a693f75d2047e49265240adc8228
MD5 82fb377acc04be6951174ddf986c8c2d
BLAKE2b-256 a1c347596d616d9f260414a0dd7346a3832fbc48b4e1e76f15568f7bcac61cef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp39-cp39-macosx_15_0_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9003117eafceeb0ab2e4d213f508a655ff4c0b6e4ebe277527bd913cab664cfe
MD5 bd466dfa2e61486aad346b31ab07d154
BLAKE2b-256 98cfff71f994c727ab74c44dd6607e9f3860087ecd3a0eccb6b2508ddf72705f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp39-cp39-macosx_14_0_arm64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 90f7ceceb29b26456ad323b0cba721e9c2ef37d74741e17f09ea1c24ade0a84b
MD5 8499a353e84ecbb8eef152be19e52e18
BLAKE2b-256 27e311dd8150b48fa3999709cb95626ca8e02eecfc318b5f54c5120a99d92a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp38-cp38-win_amd64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 19513547ec677cf6398620b98e17803f94353ce98a91d0b3fa23669599138edb
MD5 bf06d9518f72da515c9d1872b9e3511b
BLAKE2b-256 da5c83ea4435ffe4a4197b8423fdc355b5e6168ea5eaa228c846f9d9e76a466c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp38-cp38-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp38-cp38-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 9113382d3dec608075e3dd1c02a134c8f8232ba4ba16d2ddf8d89d5483393ada
MD5 7bc517da4d6e42bea12380d19acd5827
BLAKE2b-256 7ba2c04935fbb56cd02e377d13569dbde75a4b63c942262b8cfe9b7e1e760f7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp38-cp38-macosx_15_0_x86_64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pjsua2_python-2.15.1-cp38-cp38-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pjsua2_python-2.15.1-cp38-cp38-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 faf3a8d21e7cf36926a9c2c0d853b003f1556406a674cdf1bad681736a1fdb48
MD5 ec2cb8dbd93eae1234db8b0f259e4f9e
BLAKE2b-256 74ac26c97c2eac00d0319bf844144a3c9262d4eb3666701f82643cf2824b6a80

See more details on using hashes here.

Provenance

The following attestation bundles were made for pjsua2_python-2.15.1-cp38-cp38-macosx_14_0_arm64.whl:

Publisher: build.yml on srthorat/pjsua2-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page