Skip to main content

A Python app server based on envoy

Project description

pyvoy

License CI codecov PyPI version

pyvoy is a Python application server implemented in Envoy. It is based on Envoy dynamic modules, embedding a Python interpreter into a module that can be loaded by a stock Envoy binary.

Features

  • ASGI and WSGI applications
  • Worker threads for both, can be useful with free-threaded Python for ASGI
  • A complete, battle-tested HTTP stack - it's just Envoy
    • Includes full HTTP protocol support, with HTTP/2 trailers and HTTP/3
  • Any Envoy configuration features can be integrated as normal
    • It can be more performant to offload features like CORS or content encoding to Envoy
  • Auto-restart on file change and IDE debugging for development
  • Request and response backpressure integrated with Envoy's flow control

Limitations

  • Platforms limited to those supported by Envoy, which generally means glibc-based Linux on amd64/arm64, MacOS on arm64 and unofficial support for Windows on amd64
  • No support for multiple worker processes. It is recommended to scale up with a higher-level orchestrator instead and use a health endpoint wired to RSS for automatic restarts if needed
  • Certain non-compliant requests are prevented by Envoy itself
    • The full URL path, including query string, must be ASCII percent-encoded

Installation

pyvoy is published as a wheel that includes both the dynamic module and Envoy itself. You can use it in the same way as any other app server.

uv add pyvoy # or pip install

Running

pyvoy includes a CLI which supports standard options for HTTP servers. If just passing a module:attr name to point to an application, it will be served on plaintext on port 8000.

uv run pyvoy my.module:app

(if the application is named exactly app, :app can be omitted)

To see a full list of options:

uv run pyvoy -h

Docker

For production deployments to containers, we recommend running Envoy directly without the pyvoy CLI to avoid potential issues with subprocess spawning. The pyvoy CLI simply spawns Envoy with an appropriate YAML config and environment variables for loading the dynamic module. You can see the example Dockerfile for how to set up the config and environment for running Envoy directly.

Note that the pyvoy CLI with --print-envoy-config is run within the Dockerfile to easily set up the config. This is convenient for simple cases and should run well for normal deployments. But for experienced Envoy users that want to configure other aspects of Envoy, we also recommend managing the Envoy config in your codebase and adding it to the container - you can then tweak any and all Envoy parameters to meet your needs.

Development

We use poe for running development tasks. For a list of tasks, you can run

uv run poe -h

During development, the most common commands will be

uv run poe test # Run unit tests
uv run poe format # Apply possible formatting
uv run poe check # Run all checks. If this passes, CI should pass
uv run poe build # Only build pyvoy. Needed if running tests from IDE

Benchmarks

We have some preliminary benchmarks just to understand how the approach works specifically for HTTP/2. The main goal is to see if pyvoy runs in the same ballpark as other servers.

A single example from CI for a 10ms service with 10K response size shows:


Running benchmark for pyvoy with interface=asgi protocol=h2 sleep=10ms response_size=100

Requests      [total, rate, throughput]         13957, 2790.41, 2784.89
Duration      [total, attack, wait]             5.012s, 5.002s, 9.904ms
Latencies     [min, mean, 50, 90, 95, 99, max]  9.281ms, 10.715ms, 10.679ms, 11.392ms, 11.594ms, 11.944ms, 13.676ms
Bytes In      [total, mean]                     1395700, 100.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:13957
Error Set:


Running benchmark for granian with interface=asgi protocol=h2 sleep=10ms response_size=10000

Requests      [total, rate, throughput]         13753, 2750.32, 2744.50
Duration      [total, attack, wait]             5.011s, 5.001s, 10.595ms
Latencies     [min, mean, 50, 90, 95, 99, max]  9.272ms, 10.894ms, 10.839ms, 11.614ms, 11.891ms, 12.615ms, 16.173ms
Bytes In      [total, mean]                     137530000, 10000.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:13753
Error Set:

 Running benchmark for hypercorn with interface=asgi protocol=h2 sleep=10ms response_size=10000

Requests      [total, rate, throughput]         1003, 183.39, 177.51
Duration      [total, attack, wait]             5.481s, 5.469s, 11.985ms
Latencies     [min, mean, 50, 90, 95, 99, max]  10.283ms, 163.568ms, 13.266ms, 17.517ms, 18.66ms, 5.02s, 5.023s
Bytes In      [total, mean]                     9730000, 9700.90
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           97.01%
Status Codes  [code:count]                      0:30  200:973
Error Set:
Get "http://localhost:8000/controlled": http2: server sent GOAWAY and closed the connection; LastStreamID=2003, ErrCode=NO_ERROR, debug=""

We see that hypercorn seems to not perform well with HTTP/2, with errors and resulting poor performance numbers. We will focus comparisons on granian.

Performance seems to be mostly the same between pyvoy and granian within the range of noise for a fast but still useful in real-world service. Slower services will see even less of a difference.

We can try to isolate more performance of the app server itself with a less realistic service with no delay or response.

Running benchmark for pyvoy with interface=asgi protocol=h2 sleep=0ms response_size=0

Requests      [total, rate, throughput]         160777, 32154.15, 32152.39
Duration      [total, attack, wait]             5s, 5s, 272.72µs
Latencies     [min, mean, 50, 90, 95, 99, max]  160.187µs, 847.224µs, 815.162µs, 1.143ms, 1.287ms, 1.601ms, 2.736ms
Bytes In      [total, mean]                     0, 0.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:160777
Error Set:

Running benchmark for granian with interface=asgi protocol=h2 sleep=0ms response_size=0

Requests      [total, rate, throughput]         135538, 27108.58, 27105.86
Duration      [total, attack, wait]             5s, 5s, 501.885µs
Latencies     [min, mean, 50, 90, 95, 99, max]  160.356µs, 1.053ms, 1.042ms, 1.306ms, 1.418ms, 1.782ms, 4.128ms
Bytes In      [total, mean]                     0, 0.00
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           100.00%
Status Codes  [code:count]                      200:135538
Error Set:

pyvoy may be showing somewhat better performance. In this test, much time will be marshaling the HTTP protocol itself and we may be benefitting from Envoy's battle-hardened HTTP/2 stack.

More charts are available to see performance under various configurations.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyvoy-0.4.2-cp314-cp314t-win_amd64.whl (934.4 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp314-cp314t-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.4.2-cp314-cp314-win_amd64.whl (934.4 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.4.2-cp314-cp314-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp314-cp314-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp314-cp314-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.4.2-cp313-cp313-win_amd64.whl (895.4 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.4.2-cp313-cp313-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp313-cp313-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp313-cp313-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.4.2-cp312-cp312-win_amd64.whl (895.7 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.4.2-cp312-cp312-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp312-cp312-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp312-cp312-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.4.2-cp311-cp311-win_amd64.whl (901.6 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.4.2-cp311-cp311-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp311-cp311-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp311-cp311-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.4.2-cp310-cp310-win_amd64.whl (902.0 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.4.2-cp310-cp310-manylinux_2_31_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

pyvoy-0.4.2-cp310-cp310-manylinux_2_31_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.4.2-cp310-cp310-macosx_15_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file pyvoy-0.4.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 934.4 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 414925a1669faadf6021bf0ffcdea6a543bd4b6a566da9fa56ecc042c2eca4ad
MD5 4df35d014fb8589c942e344fe32c7291
BLAKE2b-256 170b7b36a8ddfb2e70e4cb72d16c67d207ce772677995942cf87dd6ac6904ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314t-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5f56a05469e09d735646de8ea693b2b7c3bbcfa07e4d0e78bf65682e373b435e
MD5 6e20cc6ac4d749fbdf0673d66eef3c99
BLAKE2b-256 fbd3a039917900f38faec0345c843e45f2149c2da32fdcc685d47d18e71c41f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 80bf4329e2bc938c293dce386639ad5abd9615e6330c94f677c13a319121f983
MD5 75a0792956fc99545ace511c73c99138
BLAKE2b-256 4080aa16bd52c77083fa279c8b26e1573cadd4f075de89f37dedf5d244202eb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314t-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 59cb19198d0445d3784957a4065f45255064a2459da279a026731ca05c275acf
MD5 bfe9b7a94a1c7ec5266808cf7e4efc33
BLAKE2b-256 5451b85f73054c77017103c4a8c363fd4af6ffa09fc35a7e77c133dc60f533d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314t-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 934.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8bea5740ca35e51a660631ddd740060755417bb6669e8245e7d52fe49aaede8f
MD5 bae93ef77dd3d045547bbd3e142d7409
BLAKE2b-256 dd1f251b96582c53756f7aa7ffe98fade97a8a0a0293cbee406a0823be34a98e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 bb95fc7377f2ccd63d1d9cb123eba92e91d627eeb8e10f94a0c6d754a34d244b
MD5 e534cb493f5b9051e91c1abcb1f2c42f
BLAKE2b-256 9f9c20553fc4a9c0b2bdc2a603d24223a722835e5ce5ed957687c7a3c7b2c0e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 bc55a6fe583ce5c3d8edc85255946031d773bfb8e3af15c9fc35f10a2db90def
MD5 e1663f05f9668b8a1a27f9fa3aa84fc8
BLAKE2b-256 72b2c865af3d0e11a40a45ece7b34d23a604856f7a7f0cf530cb59fd485685ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4d613aadc2f5118cf3fef99e2cb83ad79c2504fab98ff8930c70ee50b67c3709
MD5 a24615110eaff68bf4970400795729ad
BLAKE2b-256 df2b18be73f58e2656461c270f75ade7514b45b89382d2fae1604caca1d40c56

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 895.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ea11359fae8e5bc8e6d635a1e975e878fb77f7a6304e9530be27a1e7bdd06930
MD5 9db3bacfcff1a9f1a959f1cfd00d1c7c
BLAKE2b-256 e2dabdaa45768399da224a4b6941e648f4e9c89f9fe70235bf077c511adbde57

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp313-cp313-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 df1e3e6538e230af377336858bfe3c18d0d27ec23ff57cfff43fdcac8ed45aed
MD5 d132feb70305dd1397d6f65405c7214d
BLAKE2b-256 34731231c73647db85a0c7219a52128d39637562aee1894dcb503b46531fdfb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp313-cp313-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp313-cp313-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 11af448916fff3e6dcc4e7a77f6fd949cb68790554ac27fc04ed55f4d17e56ea
MD5 8e0fcb8ea0b31ed486cfe0ba38808e50
BLAKE2b-256 cf71334be643ba5fff89df52dd453b3e812d13bac1bc6397c80bef3e05338a87

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp313-cp313-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1443f5f9e2949e5be7b2efba9fdfa98e1d585948d01afcfb8347a8caf8c515f1
MD5 b98d407455928b8b3b63678e8b88d285
BLAKE2b-256 d1678940c8936f270588c27def5f080fe548faafaaecfa10602a07b27213eb55

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 895.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 133735c43836003010ddd09aaf4c8e9f26b9dee1a7a5516dea1aaf72a39a6a5d
MD5 7d68ce6fa341fb9e23b684e25f0fbe8d
BLAKE2b-256 cc9d8b8efebb161cbe522e9a08e33a14ebf3e7be86c84bab285bdb7db373ab7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp312-cp312-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 195d611e415c84660fd85a1c8b5c131fba3ce5c6fe73b51cc7a5e8e1111f2ee5
MD5 6c51bfc3d245ea0dcdf4b29cfe01b02e
BLAKE2b-256 71becae0023135c656357e936613480b7d3a0b4d15bfd002c22a10a529d4c368

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp312-cp312-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp312-cp312-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 b5cafa790b52cc365c1933b4b52718d4c628cd89e777ed17e2cf20268cb30b32
MD5 a5d8dbbff59af91b137d8681f67b0650
BLAKE2b-256 ce7298bdd5c3fb5e76013c51148539624debde4ce752724d05f4dfb73fe7dcff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp312-cp312-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 77dd659832c2f46b3a025073532a36073e7e75c69e17332571c562c37121f156
MD5 322cd6418555d55fb16e14c02894cacb
BLAKE2b-256 6c2c08a714a947ca4c5c3f725bcf7c69a4afad79eb10714712b1ec0eaf691662

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 901.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a80f936e071993293c1d81e957b05791daac1dad8aa166b516af939721e1e2e2
MD5 132db2647e5f710d261af10734e11b1d
BLAKE2b-256 e8ac22821453bfed37534bff72d8a08c3d9e6937df9740ee613b6f519b808286

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp311-cp311-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5870e310cdc2d1d48e06ab7e2bbd5ae6c66b450b7857367f6aeb1c14b270cb82
MD5 d940f59116fca9a8064717c7fee03c1d
BLAKE2b-256 b34e25c39ecadde4c5293107dae6bb3a532f67894b572ca5534c4ba39e6243b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp311-cp311-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp311-cp311-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 3e78a8972906d7d3f9ce0280b9aea0ee9f5127498e4eb7fe68accc54d3fe75bc
MD5 44395af642b8cdf98a37f8ad734e33c8
BLAKE2b-256 76fbdc198747d825b09933f84edb1a80700e60f667d7d183820d2472aba09165

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp311-cp311-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 02070f44d184dc050acf340a7a83ae1bf0cb2cc394721da24a75311b6d59c0ab
MD5 3451a643018519b3bd8ffdfa072f03b1
BLAKE2b-256 eb779358fe95820fa06234dc3c49e6fe5119888dfbc0a029db7d126fc9d5e7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.4.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 902.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvoy-0.4.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a9caeb76342e60f7da868ff3d4675dbfc08a7be3587b45dc97e68d0cb1a6ca3b
MD5 0e9db27e0c7de9afece8e7f55a791281
BLAKE2b-256 9c3633ee8494d380bce03cb2111aef4648f9fee9be4e749a2e0c72e3e701a9a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp310-cp310-win_amd64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 8e144190dace33285aaee3ede266f8cbcf7cddd01c80e6fec4ff44a2caf7577d
MD5 3f7014f44d993fbdbdab7832c4dbd563
BLAKE2b-256 4048116bb4532064cb637ac39bb40d39ceb2dc221b1dc70e25ce1887a3ab79e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp310-cp310-manylinux_2_31_x86_64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp310-cp310-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 95bdd3de17d84bbc56f13d154e1d78ce10b491b98294c8c7195d9393c4327aeb
MD5 c5d7ad312c334e5880260830e894237b
BLAKE2b-256 e6acacbeb777b34f26b860642c04dd7dee25fcad0b54e621a1cbc5f3160adcc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp310-cp310-manylinux_2_31_aarch64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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

File details

Details for the file pyvoy-0.4.2-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.4.2-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4bea7fe913846936e40a174a3c3f00690c169ab88f61957a5a4b72d2caa69715
MD5 7582fa2bd9d22593aee45968d5c534bd
BLAKE2b-256 301ac9f4f0d36593cb1c21b56471d08f22092a826dbe93502bb76eb741c6abd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.4.2-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: release.yaml on curioswitch/pyvoy

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