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

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.2.1-cp314t-cp314t-win_amd64.whl (504.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.2.1-cp314t-cp314t-manylinux_2_31_x86_64.whl (672.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp314t-cp314t-manylinux_2_31_aarch64.whl (650.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp314t-cp314t-macosx_15_0_arm64.whl (603.6 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.2.1-cp314-cp314-win_amd64.whl (503.2 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.2.1-cp314-cp314-manylinux_2_31_x86_64.whl (678.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp314-cp314-manylinux_2_31_aarch64.whl (658.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp314-cp314-macosx_15_0_arm64.whl (607.3 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.2.1-cp313-cp313-win_amd64.whl (483.2 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.2.1-cp313-cp313-manylinux_2_31_x86_64.whl (676.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp313-cp313-manylinux_2_31_aarch64.whl (655.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp313-cp313-macosx_15_0_arm64.whl (606.1 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.2.1-cp312-cp312-win_amd64.whl (483.7 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.2.1-cp312-cp312-manylinux_2_31_x86_64.whl (676.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp312-cp312-manylinux_2_31_aarch64.whl (655.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp312-cp312-macosx_15_0_arm64.whl (606.8 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.2.1-cp311-cp311-win_amd64.whl (486.7 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.2.1-cp311-cp311-manylinux_2_31_x86_64.whl (678.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp311-cp311-manylinux_2_31_aarch64.whl (659.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp311-cp311-macosx_15_0_arm64.whl (604.8 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.2.1-cp310-cp310-win_amd64.whl (486.9 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.2.1-cp310-cp310-manylinux_2_31_x86_64.whl (678.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

pyvoy-0.2.1-cp310-cp310-manylinux_2_31_aarch64.whl (659.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.2.1-cp310-cp310-macosx_15_0_arm64.whl (605.0 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file pyvoy-0.2.1-cp314t-cp314t-win_amd64.whl.

File metadata

  • Download URL: pyvoy-0.2.1-cp314t-cp314t-win_amd64.whl
  • Upload date:
  • Size: 504.3 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.2.1-cp314t-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 d2938e04f0a13873748b948aaae375890020fb6f0daa3f3b73c381fe3dff45d4
MD5 69d52af3370ea7767678b78261789a2e
BLAKE2b-256 f8686c8373add90e694cf1244c65dad89045da68ac61c1bf735aff285eee9f19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314t-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 98ba02f1ce9c84b9e9c96492d1b71833a587d433edb2f9c67de4336170eedfd2
MD5 401bb3fc5d1b7ae9d89cfc56452cdad5
BLAKE2b-256 e5232554348b4f17aa42275194528301dc3fa1533593c1c5f1e9ca7ca18d12c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314t-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 73a73eeedf683307bbaef002284a990e443bcf744a57ed2ebfd23ccbcf8d9243
MD5 646c0096cdae23cefd1f94df29761212
BLAKE2b-256 6671f31cf79a280e135e7713f800e1b35f367e07ec779ac2eedf31307a81a0a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314t-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9d9ea2be8d1075b053ff6108cd51844d4a794989c7afd449dfbd0f4ff0018cc2
MD5 dd2b7254f2e32352b8476235dfe66164
BLAKE2b-256 d46df89d7738a8bb1c774a37d1d0613fd2046201848a32800486bb20dba24af5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 503.2 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.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 563445f6053111ad0b141df5735a2ade1677162438006d8df2e936f4a4320ee2
MD5 8fdc80d4cd595ac71eed9bec2f1e057e
BLAKE2b-256 3177082389f87f5219afa37c775dcfb4359c12a16d02a1a5153cf326107caeca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 a7878022319dd90f7acae69ca441cb5cfd5248e52f3f48c049c276253d4a42db
MD5 18f12f4a196b7e197240720f1ef312fd
BLAKE2b-256 5dca6ade985731738b725dce49edade83a3612cf465ed323efaf396ff0feb0cb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 b0ca2c69c3c23c80d7b472ed452badc121da4443c22a98b6994ed2892baa03ba
MD5 2b0144462ff8dc794141bea633ffd80d
BLAKE2b-256 1368c94e98a15a766d6b2da3bc21141d07ab77913ebfc4b59f127cbc4b67e2b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a01352f757ae0adc62f629c6e70284dfcf32751f7803089995fc423a325320ac
MD5 9061fadc0f7fa9251525ce53fdc2e433
BLAKE2b-256 3ae6172bb41a62a6a708c5f2d462666f1c87bac1dc14e9c00fd1178607f6d31f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 483.2 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.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 17546d1be6bd28e72fbb02a92f69d84e5b88fa26bf319c60d24e9645bbd4fcf9
MD5 ccddf8e6815ebfc3047933f4ae523671
BLAKE2b-256 af4d9bfac89a20d7ff140aeae9c48b1749152b9213083495f43a7124b89eeded

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 85d59085050072b783437e2f8683c31a6120dffab1086aad3d084103b9ff773f
MD5 94922f5bff1a52bf460ec4b6b28241a3
BLAKE2b-256 5e44ce78727fb43323e95efeaeee50545622753a2169bdb869caf80bfc1e7206

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 97b2145c32ffb53b9815b95f32aa1f3a2a1c411fb40903cfb9d864d622291ec3
MD5 4515dd165b6cdcbce0202f2bff0bbecc
BLAKE2b-256 c4c7d838b063911ed82a9bb3a20f84459dd98042fc45c7729d3f893c688f11f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6632596b953733962c6625b946b585c9dc8513b56bfb28785045ec2c28c258ec
MD5 804e5fb2f3ff758ceb6044e4ccf61dd1
BLAKE2b-256 90990529bcb628eb7e70232f154e42600d1cc49ab9bf584e2b9cde8ac811be63

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 483.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.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 54855c1eaef95b39eedd34a9617d34742b93fdc1c824bfefad3c739ec09dd93e
MD5 9f5b0e0ab04ff447f07f87bfca2a92d4
BLAKE2b-256 42142a0a642814359bd00331f4cd6e806ac47bd5ff94a4b674424156cebd254f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 693d6ad3d824013f81802bc8713a0379ff1d3b462402be75879c16f90487eba5
MD5 61b3a865848e16741964d5b6e03c0e37
BLAKE2b-256 32a744e0a662fec691826a2205fec594a08bb4542b62c7f1e32660b1e301b2f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 8a241c0643769e5efda6ed02c0e0778bc9d105e243c6d9841c9c7162a073e262
MD5 f4bbf5b712437a1b8507fff7a9b48ce4
BLAKE2b-256 a4e8e826f69cb13b365b3ecb92295726846f3dc0474df0a4c7ad89d1a89d4497

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c5e4c10a550788326738ecd25ca1485286999783e42de72a6062c95d61168297
MD5 63179b1df6e86cd095f085394bfcb2e4
BLAKE2b-256 2166d4be06a60b07684a820474a3318a389ca962427a0ecc1c2c548a24799bca

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 486.7 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.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0736dfeb1d787d7d6dbd373ecbd6d76d15919b960566c1584ae97531cb25c5c8
MD5 2cd2c0a290ad1b51a5859d9e1bfc18d6
BLAKE2b-256 5502fe9cbf0e2c3f25afa270ab828e411b4f1de85eac9b39e7a0ab155316aa39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e1b9b4a3c02d332cdf3d6520f34cb545effd23c93ea3f3d0d08521208cd858a3
MD5 4c0cdfcaef01b21a5366c256fd52a7c8
BLAKE2b-256 fb3ee8c4038aac6cee3942c0642597091df0abefed15c029cab523974979f425

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 8b3474a83d3e81b58442436c1ff1cdc83162f403113093050130a82a21bc7062
MD5 a5af4f5f1218267c08cf33699f21d9f8
BLAKE2b-256 0ae843847c944bcfdc35eb5646937e8aa055a10fbbdd94d8e50187871fa6689a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 374d131e12864ba66854571edb1a3094ec578fb758fc99f40355498f10ad8d4f
MD5 a151da37e1fa61a8c2c017b0040aadf8
BLAKE2b-256 f96faf9cc16dd6814af570488675ae4de3a7db3c3abb60c9e51831a74c99632d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 486.9 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.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 89acb2936602dfe874cb3e2b08ee902ba82742a2d84cb708cec09dd10361403e
MD5 cb9a60f62fef5efed5d2df96c8942477
BLAKE2b-256 8b4542bffd93c49d614fc034f444577b05776255d6c60e438460cf9ef2322251

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 8e9b12c3e126912c2ed026595bc6fafcc40a36cae401d324847ad466b50a7056
MD5 3e7392a56b8057d24cacb16157e9436b
BLAKE2b-256 fe32a7cc5856368bae16c04b4448f553977c0ca03c4ca0f65511b34c4ba36d4f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 8cb4c060da0283c90ee22902d3088f774e631c956e96b9104cae093cb59be0e1
MD5 24f1a6eede15925ed9d703ab43b46bdc
BLAKE2b-256 dcb2aa9358dd706519f58674129984ca1839b054abfa7b030ebb9bacc145f7db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c3c8dd68aefd7ea3b7e8bc4e8009140b19f026b8f896ccaf22456623a50c4ed8
MD5 528635c33fbcdaeedd8087c9efcf69bf
BLAKE2b-256 7856d30ef961c973daf047af6635495aa1f6332d23349d1ea67f5389fd2c100a

See more details on using hashes here.

Provenance

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