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.3.0-cp314-cp314t-win_amd64.whl (512.1 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.3.0-cp314-cp314t-manylinux_2_31_x86_64.whl (696.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp314-cp314t-manylinux_2_31_aarch64.whl (662.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp314-cp314t-macosx_15_0_arm64.whl (600.7 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.3.0-cp314-cp314-win_amd64.whl (509.8 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.3.0-cp314-cp314-manylinux_2_31_x86_64.whl (695.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp314-cp314-manylinux_2_31_aarch64.whl (663.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp314-cp314-macosx_15_0_arm64.whl (605.7 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.3.0-cp313-cp313-win_amd64.whl (489.3 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.3.0-cp313-cp313-manylinux_2_31_x86_64.whl (696.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp313-cp313-manylinux_2_31_aarch64.whl (661.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp313-cp313-macosx_15_0_arm64.whl (606.5 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.3.0-cp312-cp312-win_amd64.whl (489.7 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.3.0-cp312-cp312-manylinux_2_31_x86_64.whl (697.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp312-cp312-manylinux_2_31_aarch64.whl (661.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp312-cp312-macosx_15_0_arm64.whl (607.4 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.3.0-cp311-cp311-win_amd64.whl (491.3 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.3.0-cp311-cp311-manylinux_2_31_x86_64.whl (691.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp311-cp311-manylinux_2_31_aarch64.whl (664.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp311-cp311-macosx_15_0_arm64.whl (605.1 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.3.0-cp310-cp310-win_amd64.whl (492.2 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.3.0-cp310-cp310-manylinux_2_31_x86_64.whl (691.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

pyvoy-0.3.0-cp310-cp310-manylinux_2_31_aarch64.whl (664.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.3.0-cp310-cp310-macosx_15_0_arm64.whl (606.7 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 1c4455342c05f7e8acb670746e67ed3245a007389d0bc657d958f1e5e3943c68
MD5 09f293f9a18fc26e61280c650d89e1c0
BLAKE2b-256 60b27ce725e711ddf3edeac6e5803909faf60364202ab7264dd38d1d70ea49e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314t-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 cd1541c38fb17902bb65764dd73bb12af16b031ee82cca62fdaa4609655f3612
MD5 e12ffab4ef373146124401f555945855
BLAKE2b-256 1de2ce8d0ef08fa6d064805df4fa1f861e0f783d0bdc6bbc83f4b6eef3908203

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314t-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d7cffc37855e6fbffe63b8e5aad14878e4e46d77d8c74c2b4b4bac6eccc3577c
MD5 e6142bd77f398edf28c4a08c82d704cd
BLAKE2b-256 2a8d89c8e0902618247fe141566c0cb9c670a0a725be77487c5238576bd39d37

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 53ead8c0786acc7bbb4d108258e517fb407f06e96c91a29c0e16580363a9d1ab
MD5 292f380c1d2b4a1d1e5a88ea95e950c2
BLAKE2b-256 8b163795c2d71be1af3c713a2d775efbaf726ef0e97da72b12781153ee946273

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6582fd97c3f84e63abdc42fcf6597561dee498d609ef2dc41fc860810a54c13e
MD5 1386ac83d8a3f3eff3268142e91f6f48
BLAKE2b-256 34a86fa2d2e3bbc5495ea0f27693c4b3440da67fd5f1fa79410d68e81d22fefd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 6908ee337b02315b5ecce01849107ea4c9fa28acd9063f90a121ab366c6c0a82
MD5 0711bde5346759314004a39aaef92377
BLAKE2b-256 6edece193d7f318318ed7d988318ede5b796cdfd895b43afc6fe9eea3b3c50dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d8aa45e48a63bfef13f69ba8e003cde8d02ac852d0fc2d0e943cb709e75b29a3
MD5 0f8e96be435bd0118a268d56feb651f1
BLAKE2b-256 330c46e7728ff09df12a828af28e37acf24aaf8ffdf4d9cc02c8ddb74deadabf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5f876d81c377e0609ad40f7a067b19b09b777a48f04eb9c15a6a35a6e91cd9c1
MD5 33f907ce823fea105c2b3b545c6f6110
BLAKE2b-256 0feabf44d9f660c693b27757c68c0e68b8cea3ee8112cb9e151da60915877f84

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 17ccadb84b57f31480f0d97742f6b640fe4114a7ed62cc22975e054300669708
MD5 38155d265b40a640d0c3f2ad22be3e40
BLAKE2b-256 b5d1b6ff754caecbe297270068f8364b3623f4d90017dae888c061b0b8816172

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 47c1cf25c6142a82da35ec1ccb7f4c6a047165dcb5c268a8f574090887620c37
MD5 648ef037f616c96edc36710bb013ca28
BLAKE2b-256 59b43eb6229eb747a37e9126085b808357f56ea91ae1bc39300b6f12772aac80

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp313-cp313-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 f05b63d4cb4e8ad1b2ad78f7a5749e049854781bf4f37fce17336c15800e1ada
MD5 974dced021f538318c3ce0c09b7fcc4f
BLAKE2b-256 5a27f7c68459acacd9d6071424072b7ada9b538347d1faa16814a5952a4ae54c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 98cccf6f1ec137dcd0a850516ff4f8505e7a3e863549e415abb2833f73185cc1
MD5 e91f7b8754d22d32430ac08f9730262b
BLAKE2b-256 58c5368f31ec1546bbd575e613b87ccf61c9670c0fc8b6802f1883b054138381

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6253d2329aa5f6e6c3aac73feac6374371a647fd0e00cebd15c3cea601a0e24a
MD5 7f5c622e3291a7a739145040d1ca3ff0
BLAKE2b-256 53b1846f7dfcf39478c5c02765306509e21d37a293b048a0f1f5410028564e05

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 4bd1c4e0bbaeb8b9b7dca6e286991ae83cb49c49bd0c574755e59294a894e805
MD5 ec96493cf0449195f6ae04dacd092910
BLAKE2b-256 742021dd6a4b3111f3558e04de1b52ec1a55728787e6eae4f48598a3e1a4979b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp312-cp312-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 ca80ef9a0852f0fda54fe474ad7d73f38f79949bc7b02ae5006c14a9c2beb45e
MD5 24d948d57b703a2126f46b6be7f631ab
BLAKE2b-256 5b114514596dfd42d095f9db5e2c4d12509589edd665254bdd4a8b9f5fd86e2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c9c561262109440a89a9075fdbc1ad4070f90e341f66c4b2beabb5bfa0c46232
MD5 2a9c5546acafe643cc511f377e1931db
BLAKE2b-256 b2c3d2eaa41078720e8a599cf9945bb66aadb4aa27c42d1b204c46c973efa04b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f0542022cf786baba36ee297fdc02af57e10ddb8f5ddbdc20b7e6025ea2a7450
MD5 71df6dda2c33161798abc047f6229ed1
BLAKE2b-256 33dddb2553e0059b8b8bda5a6eec3f7f6d09813b52abd2abd4cccaaa3db0b9d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e52d45074ec2cd19225168d87627d0f4c12f4173859a4456890da61a7ac8adba
MD5 c2650e2dcbdbffd252388235242dc285
BLAKE2b-256 3c327fedd3d03c33b6a43d8173a5405275853f509291018b1ae83d733e1a7537

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp311-cp311-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 5f657c6729b6015b9da722d061c0b0196cba757cb053f0b9af078dd0433688f4
MD5 87cb876c0eec741cc9adafbc39d6dffb
BLAKE2b-256 b72c7c9d91a991bc1d37093b6e1ff355a0ed668702a842da377406aad2a54bc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 aa7a8e61db3ca9e88e023247465272ee91261fa92a2f845c20b00244ad08cebd
MD5 650938f177dba6b4b988d813a398eb39
BLAKE2b-256 fb3fe2b502847707306300e62e5fd51fc3eb5e005758c57baaf8403bb0d2ff02

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyvoy-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0179daa9caaeafd96fe3a18ad12de864a588967af0cc6a0281fecc90a484a20a
MD5 5722371372fc654ac65b72f444d81826
BLAKE2b-256 ae96555de5f51afb30ec81914bfbad5d48f3d07b85ed3eee383218278f6b0129

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 04cc4b502a46661b53f5bfe892bbfba069166494052e6e99e2c84ca23755a9f5
MD5 025fcde161071f7172cb13541e4008c4
BLAKE2b-256 c5ecbfd812ce8105af081d6b98c4b14daf2f37e3ed490503d1e78f004fd696f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp310-cp310-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 f7db3bcc7f545a56169bab47a4394e29603862674912870cdf87748baa384c9f
MD5 2ac85dac2f9f297c9aeecd9b4c88cc1a
BLAKE2b-256 5cda2e5adf9b858c27793a459ba377095cf7116bfa63c9e639193aa6b4ad682b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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.3.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyvoy-0.3.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2585ce4849871a5d5bcb3b08810a43a99197519a6666d9fb80019a4432fa26b4
MD5 562ecba772bfdf34e6462dd971408111
BLAKE2b-256 5a658e08b257119acb0c47df93d1da24a66250016cb61c807447a2a252d197c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvoy-0.3.0-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