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

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.4.1-cp314-cp314t-manylinux_2_31_x86_64.whl (673.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp314-cp314t-manylinux_2_31_aarch64.whl (644.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp314-cp314t-macosx_15_0_arm64.whl (590.7 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.4.1-cp314-cp314-win_amd64.whl (495.0 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.4.1-cp314-cp314-manylinux_2_31_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp314-cp314-manylinux_2_31_aarch64.whl (648.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp314-cp314-macosx_15_0_arm64.whl (593.8 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.4.1-cp313-cp313-win_amd64.whl (474.1 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.4.1-cp313-cp313-manylinux_2_31_x86_64.whl (672.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp313-cp313-manylinux_2_31_aarch64.whl (648.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp313-cp313-macosx_15_0_arm64.whl (593.5 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.4.1-cp312-cp312-win_amd64.whl (474.8 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.4.1-cp312-cp312-manylinux_2_31_x86_64.whl (673.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp312-cp312-manylinux_2_31_aarch64.whl (648.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp312-cp312-macosx_15_0_arm64.whl (594.0 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.4.1-cp311-cp311-win_amd64.whl (479.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.4.1-cp311-cp311-manylinux_2_31_x86_64.whl (675.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp311-cp311-manylinux_2_31_aarch64.whl (652.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp311-cp311-macosx_15_0_arm64.whl (595.0 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.4.1-cp310-cp310-win_amd64.whl (479.5 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.4.1-cp310-cp310-manylinux_2_31_x86_64.whl (675.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

pyvoy-0.4.1-cp310-cp310-manylinux_2_31_aarch64.whl (653.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.4.1-cp310-cp310-macosx_15_0_arm64.whl (594.7 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: pyvoy-0.4.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 497.7 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.4.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 e57d2ee17e6753b99da508d0fa42fa10c9fad35cf7e690e265fe0560269d414f
MD5 8cce4ae8036f1e8002b36d5a4e9e84f8
BLAKE2b-256 24ff9739794ca6da3353d675bcdd21eda091838ce7cd8f1c528cb7711a730eca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 4f4c15030d8bf79b0c74cebf181f256dc4db5ef3fcdeaf2d2fd7a1b4bf52fc7f
MD5 8a96a2e3d1b73858fb6d46a829916050
BLAKE2b-256 8a98025cffc532306f85ddc7c075b29b6a3545e15bef5fb23be1319f664a925b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 ab7987960d9b39567b04e0ed0ebca297ac03d17887052779eb9c6cf560cd8815
MD5 f97d63936ea57defe000e9412f63be59
BLAKE2b-256 2a071f1c16a9a0c4f62148ab7cab080911fe61608e70dd2de626665e417a82e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 325e92c784bb13d5b4458ae03107f97dc9796e06addcbb229279f5b9c1199d54
MD5 fb48081d577e8d0654f8763a7ad5bb2a
BLAKE2b-256 b896034b468c84051caf048e13818f83124eebca961fca3259fa186de2f91e74

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.4.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 495.0 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.4.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 978c16983335411bac5726abac41f12c41b01b9e834ed8fc3d97820d104c7c72
MD5 3137214ea97c08d143e5609c5dc284fe
BLAKE2b-256 0a80ba818083a8bae67450274ae3cf21e066e09e70fd45904e363f0f7174a7ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 96890663267d7076aff11521498cf6c43337a9f7c51cab726b7d96c54155ae8e
MD5 8773a2937cfb607fe3fa56377f997eba
BLAKE2b-256 c783eb0e2976932513d705db4be6bdbf7218f400a678395458ad8aebe1775aa7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d2747fb15189a40ebc12dd68f4df408ad25d7fc8949f0ef27b6e1d633fb25c68
MD5 8b70cecd7916917d21a1d348a0794445
BLAKE2b-256 83251085fbe658aa10d586e67a98bec73c8d5bf1f877506e42ef3961048ed057

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0221498e0c35624d2f4265c9234487b4985cea91ef02d281e67fde1a131d8d7b
MD5 f1d4c7bfc5382dae6458543a79c82f3c
BLAKE2b-256 d1a734a3fae1b31a316abbe662911789875ac591b7b7215b02f4725338a7ebec

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.4.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 474.1 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.4.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 172b04d54552fc10916aac543c02696b2408690a22e1100b314865ef3c2a53a2
MD5 796a01a8ebedb7234aafd6cf2b65ab98
BLAKE2b-256 382de2505cca4f384afc4178ebbb82653f76602ad5c0ac2da65116f97ee66289

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 863cf1fb86d4cf1f5263f82d03bc6617a32d97780d2ed54f415654803db418ce
MD5 d20cd5cdf88aa4031273fb197d3609a6
BLAKE2b-256 703e1fefa01c42e17d99814be95fa6bfa0d273ed5712f7209c316aecb431b267

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d6dfe8af3dc82b443f74a2c8c91560914e32d9cc78984c2aad2becf159085e1c
MD5 fc5029ae3335713a2de56a67aa75b133
BLAKE2b-256 c078802b5af40bffd8b7bff0f5337a7a9ca886373d3825b299eded5b5de6b7d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 cf9f3a20f2cce741e8967c829dbab8aa3560d716243ee5acedc53c3354a4425b
MD5 239a85ce1d9c18a318a882d5ca2a524a
BLAKE2b-256 2ff2f2912d9d36a481ea54f910b800a45ca5d77497e6ba04d19b08704a1e13f6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.4.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 474.8 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.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ab4ae9a50cd5f0568038f552402a23f36085143ea7c4e67e2d22a2061c47b826
MD5 5eb72330a2bc394029e415371a422525
BLAKE2b-256 1d19d16046e83ea05f9b753490a078734bad1fa6555cd85a8e1f9500ff0321f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5565b597c9c5947f75490f22215d3dff8f70924e20cc5cf6bad9969235fd2acb
MD5 00ffac8d0488c04bf93e911d61decc0c
BLAKE2b-256 aa8d8d6305bd545b93aed6bfca7a3859dc859eb246dd83bdabd8afb659911f93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 c824ae1cdb8e3b0cd19a4da8bd2d5edd1194163234330eaf3792be8f7f416930
MD5 269c4017307d627d2ef7671259952f5c
BLAKE2b-256 42a715b02fb07faed1db783f87e415ef44152ebc9bde85740124e0d8c54407c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 513702726393d3fd7c2d3a13a32c06589831858182923908b2ab734135b500a2
MD5 1e4876ec66922439eade0bafe14031db
BLAKE2b-256 04d593192906abe9020b78baa9feba7b124b526a22f572c03ab80d0fe0e3ed4e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.4.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 479.1 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.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a724d1afefab4f991594ba86598347978b0eeb351a9407c8da27e61318e37016
MD5 05821f4daf744a8e5728372f94a86c96
BLAKE2b-256 49f87d87b645f3cb69dcd0bef5924f562448bbb06e286ee280d3986ac978673e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 b3ca0c0fca14840609822a622fba4154ee13bc93679617b6386f5b27fa7da1c4
MD5 d4f894c9e27bf25412c7dd982afb0e94
BLAKE2b-256 58fae04f2d747745cf1c0716a756b720adaf9ddd95d179ad969a48484a1eb2d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 fe9cb2bb74af28ce1c403fdced8d4a0bac199b78916c45f4a069a0d2ac42b14b
MD5 4a538b4012cba0d47c28a3e1c2750a77
BLAKE2b-256 d5c69c77840cfcf80ec98a71d83752bcf1edbf19206163f374c20866c96f53b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f056866788d1ce764abf9f79580b2a5212ff3aa803c1d5c9ecb10a17235c1619
MD5 e9eeed7c106fd5446f51ded7aa7e6f88
BLAKE2b-256 5eb3ea0f96c15789f369046afa9955890ca356b78dae7abe847afdbf7f2dc884

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 479.5 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.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2dcc468b52fdb01d4f858d0f34116f10da6072211782b184b5863ddbf7c2c5a9
MD5 47e0578a5d29210d5c32415441f4c33d
BLAKE2b-256 54407f0140b882e6fbc0116c2d09acc09ed7387e9647017eaaf74531ba098bb3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e3899185a280ca4dc45513b89ef8c999e2cceb24337eacf2ca3b67bbe33b229b
MD5 41d6618fb6f5fb8235b4f98f246dec02
BLAKE2b-256 482e09a7f9dc338695d33d5232319baffbca120f1dacf52577f12ee9c0b5d9bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 84b1abeccfdda1e389fe3443f8f290ef0e823dfa6d00b43b38919635276d8497
MD5 e52247077145bb58bcfc4d4fd2d9f503
BLAKE2b-256 32ded2574de194834d097cb5f90c1fba7db041bcd12182b5bcbecef8163105fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.4.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 652f0d2e460a0bb3f9280b25bf54863d6345a0cdb96ba91b577e8f4710fb5b2d
MD5 b3bc81018910be29fa540feedbdfc985
BLAKE2b-256 ee72b0efb13d5f209265d1f903ac4dd74309d67fccaa2c8aba4e1dc6275cf8db

See more details on using hashes here.

Provenance

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