Skip to main content

A Rust HTTP server for Python applications

Project description

Granian

A Rust HTTP server for Python applications.

Rationale

The main reasons behind Granian design are:

  • Have a single, correct HTTP implementation, supporting versions 1, 2 (and eventually 3)
  • Provide a single package for several platforms
  • Avoid the usual Gunicorn + uvicorn + http-tools dependency composition on unix systems
  • Provide stable performance when compared to existing alternatives

Features

  • Supports ASGI/3, RSGI and WSGI interface applications
  • Implements HTTP/1 and HTTP/2 protocols
  • Supports HTTPS
  • Supports Websockets over HTTP/1 and HTTP/2

Quickstart

You can install Granian using pip:

$ pip install granian

Create an ASGI application in your main.py:

async def app(scope, receive, send):
    assert scope['type'] == 'http'

    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ],
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })

and serve it:

$ granian --interface asgi main:app

You can also create an app using the RSGI specification:

async def app(scope, proto):
    assert scope.proto == 'http'

    proto.response_str(
        status=200,
        headers=[
            ('content-type', 'text/plain')
        ],
        body="Hello, world!"
    )

and serve it using:

$ granian --interface rsgi main:app

Options

You can check all the options provided by Granian with the --help command:

$ granian --help
Usage: granian [OPTIONS] APP

Arguments:
  APP  Application target to serve.  [required]

Options:
  --host TEXT                     Host address to bind to.  [default:
                                  127.0.0.1]
  --port INTEGER                  Port to bind to.  [default: 8000]
  --interface [asgi|rsgi|wsgi]    Application interface type.  [default: rsgi]
  --http [auto|1|2]               HTTP version.  [default: auto]
  --ws / --no-ws                  Enable websockets handling  [default:
                                  (enabled)]
  --workers INTEGER RANGE         Number of worker processes.  [default: 1;
                                  x>=1]
  --threads INTEGER RANGE         Number of threads.  [default: 1; x>=1]
  --threading-mode [runtime|workers]
                                  Threading mode to use.  [default: workers]
  --loop [auto|asyncio|uvloop]    Event loop implementation  [default: auto]
  --opt / --no-opt                Enable loop optimizations  [default:
                                  (disabled)]
  --backlog INTEGER RANGE         Maximum number of connections to hold in
                                  backlog.  [default: 1024; x>=128]
  --log-level [critical|error|warning|warn|info|debug]
                                  Log level  [default: info]
  --log-config FILE               Logging configuration file (json)
  --ssl-keyfile FILE              SSL key file
  --ssl-certificate FILE          SSL certificate file
  --url-path-prefix TEXT          URL path prefix the app is mounted on
  --reload / --no-reload          Enable auto reload on application's files
                                  changes  [default: no-reload]
  --version                       Shows the version and exit.
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.
  --help                          Show this message and exit.

Threading mode

Granian offers two different threading paradigms, due to the fact the inner Rust runtime can be multi-threaded – in opposition to what happens in Python event-loop which can only run as a single thread.

Given you specify N threads with the relevant option, in workers threading mode Granian will spawn N single-threaded Rust runtimes, while in runtime threading mode Granian will spawn a single multi-threaded runtime with N threads.

Benchmarks suggests workers mode to be more efficient with a small amount of processes, while runtime mode seems to scale more efficiently where you have a large number of CPUs. Real performance will though depend on specific application code, and thus your mileage might vary.

Event loop optimizations

With the --opt option Granian will use custom task handlers for Python coroutines and awaitables to improve Python code execution. Due to the nature of such handlers some libraries and specific application code relying on asyncio internals might not work.

You might test the effect such optimizations cause over your application and decide wether to enable 'em or leave 'em disabled (as per default).

Project status

Granian is currently under active development.

Granian is compatible with Python 3.8 and above versions.

License

Granian is released under the BSD License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

granian-0.6.1.tar.gz (55.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

granian-0.6.1-pp310-pypy310_pp73-win_amd64.whl (1.7 MB view details)

Uploaded PyPyWindows x86-64

granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-0.6.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-0.6.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded PyPymacOS 10.7+ x86-64

granian-0.6.1-pp39-pypy39_pp73-win_amd64.whl (1.7 MB view details)

Uploaded PyPyWindows x86-64

granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-0.6.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-0.6.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded PyPymacOS 10.7+ x86-64

granian-0.6.1-pp38-pypy38_pp73-win_amd64.whl (1.7 MB view details)

Uploaded PyPyWindows x86-64

granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-0.6.1-cp311-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11Windows x86-64

granian-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

granian-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

granian-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

granian-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

granian-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

granian-0.6.1-cp311-cp311-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 10.7+ x86-64

granian-0.6.1-cp310-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

granian-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

granian-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

granian-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

granian-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

granian-0.6.1-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

granian-0.6.1-cp310-cp310-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 10.7+ x86-64

granian-0.6.1-cp39-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

granian-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

granian-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

granian-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

granian-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

granian-0.6.1-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

granian-0.6.1-cp39-cp39-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 10.7+ x86-64

granian-0.6.1-cp38-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8Windows x86-64

granian-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

granian-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

granian-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

granian-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

granian-0.6.1-cp38-cp38-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

granian-0.6.1-cp38-cp38-macosx_10_7_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8macOS 10.7+ x86-64

File details

Details for the file granian-0.6.1.tar.gz.

File metadata

  • Download URL: granian-0.6.1.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-0.6.1.tar.gz
Algorithm Hash digest
SHA256 9d92a3aeaf8213f4fda8a3aa4d565ad104bea2107353ac344ceeafbc10ad5782
MD5 ef244ee98ee8f282886ea2a9ca7c2bb2
BLAKE2b-256 5b990647926e68a5d1ee3a141ab1089b1d8b4a8a5b9d10ae79692952a1f943b2

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 a23c95b9f66a15b8889f14113d98d95356f785983b1bc63875362567180cadb4
MD5 525fa944aa69b17853a205890b17eadb
BLAKE2b-256 6e946d23c91367ad8f06e9e130e03d603552bd36e6af4912065de36feb20dc7b

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1e1b239c6a4cf66d918c9aa6b3370fc93d9ee1dcf53f3ab36b5900327784ed53
MD5 20f6c44ca25e0bb1368d0ba74c79838f
BLAKE2b-256 d4bc1ee415eb3b2e2909b24ddea50f2285540dc7f864db91cff91f3ee1a10beb

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3ae712ce9568cf3cceaa593197a36c6a38cb43481ae8c3ad7f578faecfa6a772
MD5 0aa372d6b51d92e85582c7a32e19f746
BLAKE2b-256 0f927e745329a484607e0ba055f71a28c99db148e1c83cd62a3e394486b67faf

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f751bb6e625557c122a8f2c9cc20eca6abd7a01c053ed64ce4e34270bf2e54fd
MD5 baa1fbe92e8ad9add81ecb2b841d3f5d
BLAKE2b-256 16387ab5c34091b21b510fafda25d50901a4881efd2bd7c2447edc20833827d9

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9940b07924080e3e51bb8fcd7703407f4093f20a6690b723be74d68772e835a6
MD5 9b2f8e51f1ccbddd7706fdfc7f6b2624
BLAKE2b-256 f880c138eb63ed1a1ae3e23f76285f7f89b2cd05a82baaee1d101259b13a7e8a

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2ec3521fe840961c68d9e4412c4f63a187fcdaf13c7e406fceb629ae84be94d
MD5 a60c4f753738cf3839d1e68793a8ff32
BLAKE2b-256 725a0b2723f273bd2080cacd67c405ccf45105b585c0088b5c3ec0c700002a33

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 15d434b0c98459eacc33b94f304799d1f763c0538f23559a56a8f82a540a9bec
MD5 b936123f361ec76add1ec8e09f2a1d81
BLAKE2b-256 ecfa510c75a5694652dff5d15ca630fb5f16d5d821539ecf8b80dcd933bf6fc5

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1dbe2a04905432201772ffa16047f92e8814ee02e10f0f841fdea9640281b4b0
MD5 b31864f3ba210e021b3ace81d7095915
BLAKE2b-256 f50db89643a30840a8b0f9852345941fff639fc7dd5a949df6ddd2b369356983

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f15f3b613e5986915013c74649b697dd900bc1fda711fac8f99c01981c45a7f2
MD5 3203e8a4fa0c17fca2daf3c6329f1ac9
BLAKE2b-256 ac6f6e947f38559c25ddde16a17d4d676893609458d977e40928b48ec8632283

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fc899d9ce8ce84beaa33c5c614b2b8f5dc4391d00ea6ede295945a13e4bced15
MD5 8c3f891d95eb90facef30effaf4552c3
BLAKE2b-256 f13004bdfb3e2fa9b8e32e87508c96fe2f2d7ae3d5ce54a870f36b775cfdc71d

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4af2374852451568e032a2632a937589611561e8c9634b1a3ec9549568ce59f0
MD5 7156695240849668b06cc81efa885f56
BLAKE2b-256 c380512f7b53767bfdd525b163fcb65d503619664d3431ce8d9d7da9f503880e

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12cbd277271e7b908ff8f158e3270bf6a7a8cb233680dbe07a305c070198525f
MD5 f2c7fd099ea356c34d90a9b1b4f49dc1
BLAKE2b-256 57f9e1bf4fc6aac3c16b0640cc4a30420cfec9c84ed1a785105ebc7b38c09cbe

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 995cdd51eaa6f4fc047af5f6877baffa1f0672e7e7ba87c9c52b3f533c65a00c
MD5 fc235caeaac5467b1099ae1fe1ea6fd3
BLAKE2b-256 2d8c02b7314648e11cf9d721335c6277ba7cc8f8cb388bce74497e7ddd37f3a1

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 bb44604cb456880cf06ed0cf535f624d0351dac194ea719e3485a662f820de49
MD5 87ed4cd8272d996434048b54e20a9554
BLAKE2b-256 30f98a116d2ba310a0c64dfd949174727c2cfd0632041c73ff29f2f26c7d223d

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 bdd72e49fe001028d7e1f8d735e2e52f33333e597ec14f8abeff1c7751eea807
MD5 de07c94ca9256e61224ee9cb55324624
BLAKE2b-256 917ea93b77c1e57fc08a48699d073ed535f1e866c706b2b6dd221136fd38688c

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cd10f8f95ffb8b89d2ca115a6cdcfb201724f36cbdc636654b2463c88e058159
MD5 9a8c3981edc567734bdce780a3e2a106
BLAKE2b-256 3c57e64bfec3c0d5d1105f6eec3cba53f60e9e602d310b974500328373a4633d

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7159639d945e5c23bbfa14a90b4b393d50cf48c81879aa4858fcd622911039e6
MD5 ddd8e11774ecda1c4d9b027ff16f6e5f
BLAKE2b-256 3b3d081d6eecfba8845a12a0917ec76d8bc6004ead9b25a50be712834fb94013

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bd40fad9da2f0edaabeebba39a265716cf9d84d5a0fd99944e55bf02dec6b1d
MD5 fdead08486524c750c55e586d9826b37
BLAKE2b-256 434f76011653b3bf0afb2b16534b526204ef244258b8074e07521fa89ae9719f

See more details on using hashes here.

File details

Details for the file granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b53cc035627e6a49e598232f252fa4533e164b220a369545320069c9bf4bc6f3
MD5 4013a78137658120241255c4c1412bc1
BLAKE2b-256 a71528bb3b5c8b765ad74947ae5a098320db414d621b2c2a0e2b46fef400b249

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-none-win_amd64.whl.

File metadata

  • Download URL: granian-0.6.1-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-0.6.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 55e92e039ad5a3560e436033e34fc6ccfedab792c929a9e363085b53a09021d8
MD5 64d82ed286329e07432913896d458f5f
BLAKE2b-256 04719be64b8c428dda22a661f294bed218e368f6775b9e7eb3bdd6481a8d493e

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4eed2fdbbc9e7dcc81edab5831df42d67f8aeb8b281a593a17ffa212aa5091e8
MD5 2873a960499b4aa2fdec5b6d30695ebd
BLAKE2b-256 6e9165c2a8fc179eac4fd6d7dbf9ae0426291f10c116d30359903f0ca8915d15

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d512af30698313c77f382addee25d881864f7ee6aba0f7b378a8496a9772c693
MD5 9bddd25b5f6cd698ddccae4507b3a34a
BLAKE2b-256 35be5c66223ecb3c65949add26306eb3f40d5766d7cf0d99d217348657cb20af

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7de9d4cc0eed1569fa71ce8dba6e148228d468f098a0207d0dde5235d4cd5257
MD5 a6798811540becf62d146faa72b609c8
BLAKE2b-256 5dd6e11b82afe11d351fa8ef530d3cd7c3202ea45e8d428c730b23fe0b875029

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 46cb4fa02c831b2e1196b7ddf13e97538038668be513f507458199f96a099bd1
MD5 627733253ec051e1b54a7569f462c81a
BLAKE2b-256 5e9d90b5eb85fb78872574e764b2813ee08bf794bf17c48da0cce644c88624a3

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f9ed7f7b873986fd6c2f041feaabd627bcc5ab4f7d09fea7a33619bc2619e71
MD5 6ac4e21fb2b784caa6c1455ce1a03862
BLAKE2b-256 de99e28a50efb33e478c6ab758cd81983307b115d48acf35fe5bcff38c4359c3

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 1a4b19be90078be89e27ce1424fe7b0bc3fb143018c8bfb18fd3acc52e3230c1
MD5 e74bd4161aeb598d76eeab342a10e950
BLAKE2b-256 b9cb5f37b87a10d6076dc29d17ab5fc9e264e32f4b30fd32c7c78f6437355e46

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-none-win_amd64.whl.

File metadata

  • Download URL: granian-0.6.1-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-0.6.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 2a058514949a09fd88ccd70ab7f7c076625d57a9f3ff3f0b402d2285e624f877
MD5 85ea4fb75e27d327747caa259e916489
BLAKE2b-256 1fb09a14848d335f543816b55e8ca45bba3ccbb9d60b4c2207cec55f8c43c1dd

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a472928c0a69343a4d7a22a210279db24d27c772a2fbe54adf4ca915ff5efe5f
MD5 edc293cc155c9e11e4b8e669c6e94c21
BLAKE2b-256 7b33a368372fd32d9a61f3009b556960feccb2b986c1ae86d2dc2263004d9b0d

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c4eb4c349380e5f638407bba9c6e7f2ef0eb8d05ac93f6f9ace25df7ae9c6c96
MD5 c52e976ce680c1b8762d01dd0b193f99
BLAKE2b-256 a8bac2093e24ffdbb7591ef4ddcc56027e6d17816e627e52b87119fd94d4604a

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa111079f0b9e363f10faada5367da9afd9476e40b34767723026003b0506900
MD5 35f997ebb54416d9e5c2c4449e747a0c
BLAKE2b-256 88ac67243687b154fb0a59b2fefff43dbb2b6c888597c91041e992224c1902e3

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5fdcf712a1295008320fe54c746dba78946a023d13adf58f2c1c2ebe1fb88a24
MD5 14e0a245c65afede53437cec79040369
BLAKE2b-256 66b7694c82b861d12dbd7b4686d919f37212e382c757498558d7e5e6fc9ed232

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3781cf061431fc1d3a44c2d981b7a3f8dd751a1a8a126c1c7737aed2e18415e
MD5 f1980bfa1e077a0e32d9e9cb60d86c96
BLAKE2b-256 440180361a50c9b7ffe12fa5920f01ad18e5891c03ee65a08fd08894edc22944

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp310-cp310-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 d61eebba7a365e6f24165fc60c28d3ca3553303fb4b273adaa006f5e6de3920a
MD5 de84ee23677416b26e7ca955f83cf494
BLAKE2b-256 1a9ad639eec5affc67e222ce3fd66d2e376863b7342415b5055a7d61599aef21

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-none-win_amd64.whl.

File metadata

  • Download URL: granian-0.6.1-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-0.6.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 688e79042e02dbabd486737e8ddc0cc6e523e5a91732460c9a73f96896425f16
MD5 902ad3cb6d5106d5c673be3a12f8a99c
BLAKE2b-256 4a7a55844e8edfd5ce125ffdb44e95a1b491994125c3b70d7ba79560dad553d5

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 41f38e7cee794650c5e74d4d7b34f74c3b6533f2122456d83f44fb9d316765f6
MD5 ade94e43eb9c6ed1690b7ed131a0385a
BLAKE2b-256 23dc89d1a884502c665d21ff6d0d53f85cc71079ea28b400b03c999277889ff0

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 77db6039054b129e0c88443265a01fda437944e325130e08a7152a4d8a6fa8ba
MD5 d3c1ef718416469e1b0ab4e03e4c7cbe
BLAKE2b-256 dc07f7e3c90197f9e056df8317bdf9d9b41648a36ed149135755a82c540324e4

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c843edea9ae94882bfcb8ea10f36f223ce5f0a8d0b2c5aae4c22e579da01834
MD5 cd82bb373de203e0ed9e42e811510d72
BLAKE2b-256 eb071a717e7a82e707fde119d71f18d57d8923ec04870e8afe8a45798d9fe7dc

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 003c6f2775c6ce7359880d73bebda412fd506162882f9b6ba98486b2aac1b2eb
MD5 13bb98b0eece266735e0d4d0f13fb333
BLAKE2b-256 c78725ebdf5c9c412d26e1e5fbfc3d4958571b8a7226834b96485de6643e5bf8

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b01cc032163a725552912cf6ea3d6b390943905cc094e953a129f1dc61c1b91a
MD5 6ff2fa0d204da5de52df613167675f10
BLAKE2b-256 296ff7a2c6c850e3e29a29db6c01e00a5a3b2f4086b14cf4dfbe2c86456fe8c9

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp39-cp39-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 4e785046b3a5e5c458a195863359b14606b8567f319fddd59c845b60f0a61fbc
MD5 6910b5a756f6106be7fa7da273befceb
BLAKE2b-256 9e82f7c9c36964e37cf34a396c42930b2ca8540b2db07532cd422e1b1c23da2d

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-none-win_amd64.whl.

File metadata

  • Download URL: granian-0.6.1-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-0.6.1-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 79af822ef65ea54f9864a75ea65b97d5bd56978b5cfc94e824074b653a5a74bb
MD5 992609901d7dbc909900f66b125a8a52
BLAKE2b-256 034414188017280a0b2c9c8fde6a0fb1bae1272d0d600a5aa83a7edd0d4891db

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 405dc742c4a2affc5870c839729e363e0ad1774ae39b9ab2acfb35b76f23f1a7
MD5 ff79e80eca8701514276676057517b9e
BLAKE2b-256 bd926b8e42a883729b18c766243efecfe05fcf90e651ce742b0ad68351dc3e45

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4d8753cdcc7a84291c0edb9acb261584c1460d4180b37fba657d7ebe4089495b
MD5 115e73213b32c12737bcdbf300f2de1a
BLAKE2b-256 a5da18a84c837bbfe94861d221a6454bdb872532cd3af9f96b48182b5eb3c26b

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba822f93a40fc2c8bfeffac708d57a35071df00f58b1cbc2745566dfae1b6446
MD5 06b26f6d69e61d3f881d8be52bd66aa8
BLAKE2b-256 caef6d8d88ec83ff27d06f5f5306e356b21f787b3bc4436fc67c20b15bfd5bc6

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a01546c870bfdf855f078e56635b586ef7d194b4d8409a927a8ec0edfa4ee1ee
MD5 eeb2988ce1d8149cbeb5a3bc9f2cd43b
BLAKE2b-256 52dfa721b30ac0d0eb19949ee091584d9614bca70c21d7e608909dcbba0bf875

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a50dfe0cf41e3ffb05bf60255e9265e9c651ccf6b784af11aaa508f0b34bdfb0
MD5 36e5b46f5fd61040f5c3a08d526366c5
BLAKE2b-256 718e2e4a5960e5f013dce5b0a548f4a4ee4b182435aa9a5470e5d613a522d3e3

See more details on using hashes here.

File details

Details for the file granian-0.6.1-cp38-cp38-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for granian-0.6.1-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 b71b41b49e3eb89c08038111952683f46551b5daee552793ea165d3f8f728e48
MD5 f16db2a2eda3eed415ef49b22762fa10
BLAKE2b-256 a40e3904729def594101aa3330e086a66604fe0b0ea4862d709ec449f4836e2f

See more details on using hashes here.

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