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 or MacOS on arm64
  • 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

[!NOTE] This is an initial pattern and we will iterate on it, notably it will be good to remove the python version from the environment variables.

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

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.2.0-cp314t-cp314t-manylinux_2_31_x86_64.whl (673.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp314t-cp314t-manylinux_2_31_aarch64.whl (656.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.2.0-cp314t-cp314t-macosx_15_0_arm64.whl (603.8 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.2.0-cp314-cp314-win_amd64.whl (502.8 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.2.0-cp314-cp314-manylinux_2_31_x86_64.whl (678.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp314-cp314-manylinux_2_31_aarch64.whl (657.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.2.0-cp314-cp314-macosx_15_0_arm64.whl (608.3 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.2.0-cp313-cp313-win_amd64.whl (482.9 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.2.0-cp313-cp313-manylinux_2_31_x86_64.whl (676.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp313-cp313-manylinux_2_31_aarch64.whl (657.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.2.0-cp313-cp313-macosx_15_0_arm64.whl (606.3 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.2.0-cp312-cp312-win_amd64.whl (483.5 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.2.0-cp312-cp312-manylinux_2_31_x86_64.whl (677.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp312-cp312-manylinux_2_31_aarch64.whl (657.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.2.0-cp312-cp312-macosx_15_0_arm64.whl (607.1 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.2.0-cp311-cp311-win_amd64.whl (486.5 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.2.0-cp311-cp311-manylinux_2_31_x86_64.whl (678.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp311-cp311-manylinux_2_31_aarch64.whl (658.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.2.0-cp310-cp310-win_amd64.whl (487.1 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.2.0-cp310-cp310-manylinux_2_31_x86_64.whl (678.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

pyvoy-0.2.0-cp310-cp310-manylinux_2_31_aarch64.whl (659.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.2.0-cp310-cp310-macosx_15_0_arm64.whl (605.4 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: pyvoy-0.2.0-cp314t-cp314t-win_amd64.whl
  • Upload date:
  • Size: 504.6 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.0-cp314t-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 66dae617d8b81fe1cee62257dc3ea0d12ef79de325f5c716239215611937e636
MD5 b51add01fa69f0e67a31bb929f973b9a
BLAKE2b-256 7d495b8f20da5ffb3b1e78cadab5aa99604e0c2fd2571a08805f0d63f74a2519

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314t-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 2b566f039f606ff580b0d679285b1a583210f5e88178afd8fcf3e45f8ebe1948
MD5 d5ef8bf77df053dcb1c475b66e9f8500
BLAKE2b-256 16772e8cbde5b25b4c6cff4b3c98f1e2d266a14dea6d6c35d9fff01a637637af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314t-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 6a5e6d57282f116f2660b78a08724ec46dd04d0963ce6e51f560e9bcd38545d4
MD5 8a8b07dc14ec093f844795576f4f39a8
BLAKE2b-256 b555af525ab5f07a81baae412178716a40d509f52e10655086d55b9742d2b260

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314t-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2a7d1272323e5e7d9bfba2e6f612857de742a475f379c785d4f98274c047ac26
MD5 d22816180ad30813871030503f7a0243
BLAKE2b-256 f38cfb65edbb853cd9d1363d7fb6f8c1b6e5268d6cd9b536bbae00b47d0e60be

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 502.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.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8d0b7a3ed2d125154c48e41eb841836f3d2a319f16588f3f2bff220e22c68e92
MD5 81e6c986d122ac86e9957650f92e9a2a
BLAKE2b-256 1b8deba6f0eb9a67cd19787caad699be76cd1db2782edc50517ceb7b30fb16e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 724e3b7ee7b9b12e19d2928818d492a19d394091c28fcb07901bf3e0e60a0e45
MD5 e97b26125eda6b348f31a707ba9aa9ba
BLAKE2b-256 ae34b86345c8949ab5975ad8f20697720ad20b0d0730e0d0257acd5cb54616bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 e06f74e67152a194e385ca9afd09e1aa9992b73d7476d5b8f522631332b39faf
MD5 8c969b93f51e07c9539c1885a2064b7c
BLAKE2b-256 4bd59686cad0b8205e6741da4e6bed3a102fe1ac7514544d62d311f8d40cbbae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6ce897b68c65a9e512df11ed0d41d49e85dd0e6bf7317229dd38e487ab0f96bb
MD5 6d6a03450ef343aa2284a06e5e70d70b
BLAKE2b-256 dc774fa07a8c560cb55cfd80a8414828f8cbbf0cae041fca58885ea8c4eb45b2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 482.9 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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9cfc147cec5dd7abbb91cb491aaee5d6bdd17dec5c7f87b3094248dcbc5cc74
MD5 8b3fed2ce4d49b8e2ea3342f8c4e047f
BLAKE2b-256 818418be34c48a0815cc2081fe96e328c4c177a5d94165bd2c7e36f92bd43321

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1124d34c8fd366c3371bd902b65a34a33bf1444364c4eef844a3464a260802c2
MD5 d1d1e3a568770687119903ebf724c6d9
BLAKE2b-256 0c3880944408b23dcde98152b915480f1d27b5cdce2d2a9cf1246bc388110ff5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d1c81dcad3d8ef4cf14137436916492d18af6bcf206fb62c37f4e3768492291d
MD5 5b3bbecb4e8437df346ff4863a50d854
BLAKE2b-256 da2f5043c8ddd5cbcc4099a6eeeaaeefb37da8d52abaa12c092b16135fd8782e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0db70dc687273de2b63c381f3695f248259fbe50e286efdcb5f9ee49efc48536
MD5 073d0fd8868cf5fa5c6527bfa859d8b3
BLAKE2b-256 b3fc3425bc531ad4072e3507de4318183011a82b73bf7071c5ec829e6b9a5ea1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 483.5 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 189879bc6d998134086f9ae187bb9ea301b4032b55630f79956460ab5349c294
MD5 f1b5470d0ee0eee0bbb94e91c89e1214
BLAKE2b-256 15a897c4c508632f7895f57da6a2d89515a78c1b7dd920ea0bb2f160a4e65702

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 4476301074363aac20d8c32319d50dfc745aee4461b3070e948995e7605afb06
MD5 bded79ba12f283217839706de1d776f1
BLAKE2b-256 048801d141df5fa95fcd2cdce902c273fff03609b807042a8184690556337e64

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 1f60157c63400f610a56c8c6894846d2c120c16362559f1740e8e078b729cc19
MD5 e1469a5d6ac4f764ed113f0d90ae4b1e
BLAKE2b-256 ed2d75314db8b8527e3ab720afa5401017a5c20525f73a1468b6546f6196301a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b43633d171b49af0af8a25158a64ed94df241560654897f6aeb80d792307e578
MD5 f61cfe6a1e54acd5e09c8d6528461938
BLAKE2b-256 75b4952ef9a275af9b27a74e8566969c6e4806ca14bdce9c4ca310ee2583c3e8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 486.5 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f9cf0868f0996b01857edc940d67a0a4b0ce9e803d37f675f82ac3c27da06628
MD5 9b01737912fbfcf5fedb2f908424ace4
BLAKE2b-256 3983b1774abf45865e6f2133fe53ca9beb60926a9cd3fb9ce77971f4c7f0f8a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e72b75427dd20529a6f5b06dbc00e81a4699486e5921a879bf9dfdabb2163661
MD5 2b34a8d657014d3100da6d12c2aa8bd3
BLAKE2b-256 858e6a0754ebe6f238fdc06c896b7bdadff377995ddb7f99e91edfeab3bbb0d0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 b328de9cf4d11037193245912b7e993d6a08037ab0fc7677ce1dc25b3a037af7
MD5 08b257122bba7da1cfe305319ca4a3af
BLAKE2b-256 0c56d37ad15319f96d4c0cab2b821322a05e6b127c0f1f61fd8024b3676d0a5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c001b94e57c5a4da7a49cbab051d502d5768ca98b5f3bb584133faa28a1b9762
MD5 837a75d848b743ab74fbcade464e991b
BLAKE2b-256 bfdb61b58aec8f3f9e272973f895f0561f25a36761eee36e9ca41512fe6e0669

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvoy-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 487.1 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 650591de51e6187e1dc9d15fa8b0cde9ecd3e059cbc821b574567e33bce60883
MD5 9eac31557fc960369ac6f1745fd276cf
BLAKE2b-256 bc4b71cb751c0ecb2be441d0f53e9eaed2ca7dced90ac978a402aceedb970419

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 02cf1b1904469b50edac788bafb45143d07848c1b53e42445d7847c2bdf230f5
MD5 29f38f8fe5686881f0e30654f38c0976
BLAKE2b-256 62c277d5a7751b4efba5e5008681e49ea4f93732615269c11f072238c31ef6a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 f66afa5db0a6df613ffb2864a0945e3670bbddc0f70f523c9cb0996f50e69cf1
MD5 2a1b477a284d0995254c7d1f8f571069
BLAKE2b-256 a4bd3d9a98d8ba3c34b02a764ddfa271d5c0f2d3c4e3c705ebec5ba7376e8e7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvoy-0.2.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 dae7d8f7d2d1986dc97076bda4d4eb3c1a083de0339accacf002c9569c346231
MD5 cd4e201f1b17d558d3fe76dba307b6fe
BLAKE2b-256 bd638cd2e57ab32344d070d52526ac7bc2c9529bd7994ff71adf3e6d17292874

See more details on using hashes here.

Provenance

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