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

Uploaded CPython 3.14tWindows x86-64

pyvoy-0.2.2-cp314-cp314t-manylinux_2_31_x86_64.whl (671.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ x86-64

pyvoy-0.2.2-cp314-cp314t-manylinux_2_31_aarch64.whl (650.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp314-cp314t-macosx_15_0_arm64.whl (603.1 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

pyvoy-0.2.2-cp314-cp314-win_amd64.whl (502.6 kB view details)

Uploaded CPython 3.14Windows x86-64

pyvoy-0.2.2-cp314-cp314-manylinux_2_31_x86_64.whl (675.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ x86-64

pyvoy-0.2.2-cp314-cp314-manylinux_2_31_aarch64.whl (657.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp314-cp314-macosx_15_0_arm64.whl (607.1 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyvoy-0.2.2-cp313-cp313-win_amd64.whl (482.6 kB view details)

Uploaded CPython 3.13Windows x86-64

pyvoy-0.2.2-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.2-cp313-cp313-manylinux_2_31_aarch64.whl (654.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp313-cp313-macosx_15_0_arm64.whl (605.2 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyvoy-0.2.2-cp312-cp312-win_amd64.whl (483.2 kB view details)

Uploaded CPython 3.12Windows x86-64

pyvoy-0.2.2-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.2-cp312-cp312-manylinux_2_31_aarch64.whl (654.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp312-cp312-macosx_15_0_arm64.whl (605.9 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyvoy-0.2.2-cp311-cp311-win_amd64.whl (486.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pyvoy-0.2.2-cp311-cp311-manylinux_2_31_x86_64.whl (675.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

pyvoy-0.2.2-cp311-cp311-manylinux_2_31_aarch64.whl (658.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp311-cp311-macosx_15_0_arm64.whl (604.1 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyvoy-0.2.2-cp310-cp310-win_amd64.whl (486.4 kB view details)

Uploaded CPython 3.10Windows x86-64

pyvoy-0.2.2-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.2-cp310-cp310-manylinux_2_31_aarch64.whl (658.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

pyvoy-0.2.2-cp310-cp310-macosx_15_0_arm64.whl (604.3 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 504.0 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.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 8d49f0547696b16c90d72444d4b58793f6d141e90cbf58eb244cfeba43510651
MD5 41205e69c79de1459607570637c40673
BLAKE2b-256 6777e583c9bc9299af1a6e85f2395c5a879a2ab6d5b1fbdfd49c25cbdc00c510

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314t-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1db210e294e48b35362553f22d4a9ee913ff035182ee424d57d8d929f006dcaa
MD5 4c4320e8c03ecbe711554c7f545fbc54
BLAKE2b-256 1260e656a4dc2a994e5acf51421addd07bb3ebd16938364d0f6d34b46b10ebe5

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314t-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 2984e74b258b7d704e7eb80ae253dd0907f91ce562f7d5c982e53f53e4a3e8fc
MD5 66cffd22922e5848658c16f03b6103f1
BLAKE2b-256 42a6ff8e33c1c6dcc67a9b5931a52d4d04c484ce87d791944103fb04e12ce182

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a547c3022e91dde3fb118569ec180f6c83e65b7f7004db996e54abeda280b8d2
MD5 c6bd54cc4c51238fb07a1a9275d545f3
BLAKE2b-256 def9c09153268c4d04fde666d10b2803446d71f292fc2d2ce2df9214a692e490

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 502.6 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 edd886c8e6cf61b1e526e04f2e88ce73e8b071f0ef354f9ecaa42aeccec911bc
MD5 50847f8415712c076cb95f1b69ba8a7f
BLAKE2b-256 26025deac35f169525ec501cfc31cf628b0f9f91b1d359b13b86d8d149f69ced

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 61a06e40da3e0a0863d3695a9a33d20e428158febd15d5f1f7ee669450c5353e
MD5 3cd66d2aef04a1284d783696cb068775
BLAKE2b-256 12b3cdf7664083f52361e2255996f217b4d4149572eede71f6afffb960e88f66

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 3b230a775dbcaaa018fccdb43df8a8b61ead75cd0998a300ecebbe8d4197e3c9
MD5 b6c1416691872b5807d19f2c4fa90e2e
BLAKE2b-256 6827a606dd0b5f2f708c5e1e487609270d8bdeb487c765b6415a922388145321

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 35f042fac1d1ae5a580d82549a384978e85064d547f0701b44c7ccc2d4967b90
MD5 38a4b7054c82aa675b58bf9e47318813
BLAKE2b-256 bad9963c46d94fb2e1707cd2a098a0e132050fa5d0e16eace59e73c30e159696

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 482.6 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 37946fc79518c089c837c0900065d7865dcce669cbed954d2380445d615a51fa
MD5 38fcf4b58e528c21703fc05ec6d0fd83
BLAKE2b-256 a84561151a2a9086dd8be2464697cb13095bcf93adf15edde150999c748801df

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 2f29e8df83aba2d7274d1f4d66d8f9a5b140d4748be7840e30c45601522d4371
MD5 9a8c5bdc79cf1feae2ff558aa9f9c23c
BLAKE2b-256 773571f2a5cf3e03ca14af2e76c8c11ac8558372661cb0832310160d1a2f5e88

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 b0395795e4518a3752f353c8569a1b16e19f6d70d6f8c3a0f0338d4909884a85
MD5 1749279cc62668568d4e2ea0f1c6c893
BLAKE2b-256 c33c85c4a008feb07ccb0c5ba1b1907a985c15eae46ee457c2f36595ff4ff4a3

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 19e4720bdf1460183e52d6a0a14006aee2edde967c6528eecd49d8167115177a
MD5 d9e1aec77866a6e77c0f767fd5025473
BLAKE2b-256 165507d521e79dc32341d6d61120e80d7b7da1ff323694949bc71b08008f3d2b

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 483.2 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 195265376eaf43f86ffc91b436569b93ba3bbd45c45cb061075fb5f1e5a0593e
MD5 7a083b0765f52f0973793361e5bc9b4f
BLAKE2b-256 42781ca389a3bf527707c038af8fb444c93e0f296bce30df3ea8dcc16c41db1f

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 6412fdffcb8e6dac9b7c31156d6572ea9d46c5b5fe125481f557fb424dfb5e95
MD5 43416cb1201bd71a78b94e605b9e15ec
BLAKE2b-256 3b6511d8ad1bbdead0e068817ec630f7491a8f9bae8d545d8558574215d53861

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 bd5c927db50b685437a1671829c3352ee7ad6acca1aa5af8c6a4ddb80d83d7dc
MD5 f3a5945feb06fb19d6d2f2631d2430a1
BLAKE2b-256 9d6ebe5023dc11e3337e4970ed8ceb91381d5c9be16ada82e40a7d9d2280161c

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fc4b430521cf2b1277e8b48124ff9752b3addcb37319da50b809e9ea9a6b4e67
MD5 a0dd50599185b40010bfe4e67b73f041
BLAKE2b-256 dc80faff2f405d85edf04b9137605c0e5dab38a78db698fecfbbb9a842773cf0

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 486.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.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3fb01c0c29cdbc39c56be04b76af8cb5349a1cfa352fbc54adaf6da6fe7aa9c8
MD5 4289d5a9ccac61963c15acd2d5971351
BLAKE2b-256 da5e9ae0c4a65010794f14edd635e2b211c9d13f7ae2e5976a671f841d4700ef

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 024fec8a34df241a95f65dac4c459d845a1788028762d702c195a2be416fe460
MD5 c483488d96f9cd2cf21f84b804b0ed3b
BLAKE2b-256 010bf6559ad6de47d76b7369400166ece799dc5f602b4903c73d00fff0f40a48

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 1fee033c46ab20d2bed6b8f5969b41d070ce3aec80e72250c06e30458f1bbb6e
MD5 50cd80f9515a1738526259fce2988a4b
BLAKE2b-256 551dd59b0ef1e85119979bec90cce3e2b8a921bdad90a4a7896d07932e58e1a3

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f4c4058b2c51e5ec089da03d5ca0717d6a6c29c15f66baf269707652c970b57d
MD5 7bcbcf6be7da459809003e409e2ac07c
BLAKE2b-256 d390bd1cd2ea80e5c27e6ec245eefc97db3423ca34ab8a5fa63559d318cec905

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

  • Download URL: pyvoy-0.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 486.4 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9f51538598de126da3ab524e6bc790bb9a22e6a327df0fe047163b5823ed8b5f
MD5 84a21ce4bd13317009b014e7161f9b53
BLAKE2b-256 a70fea85e3422336cadf301916d1c3ed172a849cdb8e3a724d9f5a8a4370c09b

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1ae21856dc4f07200638cbf95a844a045243e1b030c3279bef4e62442e916b71
MD5 5c2f4902ec022dd0d864783a5fa2f377
BLAKE2b-256 29525824638fb7c32727e3bbe889590f9ad34b5e6d4aac79f7af89d0d258b213

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 71ab58b40123dfd5f54d2e15bbdf4ad8c5e0dcff75ab540d93623b9eca713f34
MD5 7bcf5b53e64ffacca17693b206779fd9
BLAKE2b-256 014914d947546c25fe606feed6c1a4956ba4b2553c0872b10620238917b692c2

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

File details

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

File metadata

File hashes

Hashes for pyvoy-0.2.2-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f353c11d68d68ec9f2aa02953de2472422d646376f0d908f9d891060a1abc15a
MD5 81832f19d9812ba18fa51a0367fb48ad
BLAKE2b-256 368e9f281b876a15568de12c55af9f547c672966da867209b2a5faf62d8c3ce9

See more details on using hashes here.

Provenance

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

Publisher: release.yaml on curioswitch/pyvoy

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page