Skip to main content

An asyncio PostgreSQL driver

Project description

GitHub Actions status https://img.shields.io/pypi/v/asyncpg.svg

asyncpg is a database interface library designed specifically for PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation of PostgreSQL server binary protocol for use with Python’s asyncio framework. You can read more about asyncpg in an introductory blog post.

asyncpg requires Python 3.6 or later and is supported for PostgreSQL versions 9.5 to 14. Older PostgreSQL versions or other databases implementing the PostgreSQL protocol may work, but are not being actively tested.

Documentation

The project documentation can be found here.

Performance

In our testing asyncpg is, on average, 3x faster than psycopg2 (and its asyncio variant – aiopg).

https://raw.githubusercontent.com/MagicStack/asyncpg/master/performance.png

The above results are a geometric mean of benchmarks obtained with PostgreSQL client driver benchmarking toolbench in November 2020 (click on the chart to see full details).

Features

asyncpg implements PostgreSQL server protocol natively and exposes its features directly, as opposed to hiding them behind a generic facade like DB-API.

This enables asyncpg to have easy-to-use support for:

  • prepared statements

  • scrollable cursors

  • partial iteration on query results

  • automatic encoding and decoding of composite types, arrays, and any combination of those

  • straightforward support for custom data types

Installation

asyncpg is available on PyPI and has no dependencies. Use pip to install:

$ pip install asyncpg

Basic Usage

import asyncio
import asyncpg

async def run():
    conn = await asyncpg.connect(user='user', password='password',
                                 database='database', host='127.0.0.1')
    values = await conn.fetch(
        'SELECT * FROM mytable WHERE id = $1',
        10,
    )
    await conn.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

License

asyncpg is developed and distributed under the Apache 2.0 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

asyncpg-0.26.0.tar.gz (810.0 kB view details)

Uploaded Source

Built Distributions

asyncpg-0.26.0-cp310-cp310-win_amd64.whl (516.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

asyncpg-0.26.0-cp310-cp310-win32.whl (469.3 kB view details)

Uploaded CPython 3.10 Windows x86

asyncpg-0.26.0-cp310-cp310-musllinux_1_1_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

asyncpg-0.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

asyncpg-0.26.0-cp310-cp310-macosx_10_9_x86_64.whl (637.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

asyncpg-0.26.0-cp39-cp39-win_amd64.whl (530.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

asyncpg-0.26.0-cp39-cp39-win32.whl (481.6 kB view details)

Uploaded CPython 3.9 Windows x86

asyncpg-0.26.0-cp39-cp39-musllinux_1_1_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

asyncpg-0.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

asyncpg-0.26.0-cp39-cp39-macosx_10_9_x86_64.whl (654.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

asyncpg-0.26.0-cp38-cp38-win_amd64.whl (531.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

asyncpg-0.26.0-cp38-cp38-win32.whl (483.1 kB view details)

Uploaded CPython 3.8 Windows x86

asyncpg-0.26.0-cp38-cp38-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

asyncpg-0.26.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

asyncpg-0.26.0-cp38-cp38-macosx_10_9_x86_64.whl (646.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

asyncpg-0.26.0-cp37-cp37m-win_amd64.whl (511.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

asyncpg-0.26.0-cp37-cp37m-win32.whl (470.8 kB view details)

Uploaded CPython 3.7m Windows x86

asyncpg-0.26.0-cp37-cp37m-musllinux_1_1_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

asyncpg-0.26.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

asyncpg-0.26.0-cp37-cp37m-macosx_10_9_x86_64.whl (631.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

asyncpg-0.26.0-cp36-cp36m-win_amd64.whl (513.1 kB view details)

Uploaded CPython 3.6m Windows x86-64

asyncpg-0.26.0-cp36-cp36m-win32.whl (472.4 kB view details)

Uploaded CPython 3.6m Windows x86

asyncpg-0.26.0-cp36-cp36m-musllinux_1_1_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

asyncpg-0.26.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

asyncpg-0.26.0-cp36-cp36m-macosx_10_9_x86_64.whl (629.3 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file asyncpg-0.26.0.tar.gz.

File metadata

  • Download URL: asyncpg-0.26.0.tar.gz
  • Upload date:
  • Size: 810.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0.tar.gz
Algorithm Hash digest
SHA256 77e684a24fee17ba3e487ca982d0259ed17bae1af68006f4cf284b23ba20ea2c
MD5 914aef6128b19b2bef2b9914180466c5
BLAKE2b-256 e4570a4c4d3f2307b12f633b28c370669d6115a1780416310ec536f01ace09ad

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 516.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a254d09a3a989cc1839ba2c34448b879cdd017b528a0cda142c92fbb6c13d957
MD5 f02208b38b842db70b5ae4d22f47acca
BLAKE2b-256 cc3e222fbd3d1b610cf23f5388f4af08cc04a4fef5c05c62960e62cb816dfdec

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 469.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 838e4acd72da370ad07243898e886e93d3c0c9413f4444d600ba60a5cc206014
MD5 df8ebc26d84578c1f7ce9501edd63e02
BLAKE2b-256 51f401e3e50dd1c6f51007248957e9845093d6183593e54afadd5e4f92554b64

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 868a71704262834065ca7113d80b1f679609e2df77d837747e3d92150dd5a39b
MD5 b7fb6db9534eb9a578056d62d5ef7836
BLAKE2b-256 4321f390eec6d1559433a2fdf5f1532ddd4caf8316655d2453e7233ac4f30263

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5bd99ee7a00e87df97b804f178f31086e88c8106aca9703b1d7be5078999e68
MD5 ec39928afb85d0c85a448a29c7c3a009
BLAKE2b-256 002c77e110cdcb0ed5b0cc60697454d9102284489d796b0e051565f4ea78c58c

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2ed3880b3aec8bda90548218fe0914d251d641f798382eda39a17abfc4910af0
MD5 2f84bd30a81cd804f7cfb1ee68d9eb1a
BLAKE2b-256 926f3a84d4525de4f6ccd4b87e2300fb121801721014e53855468c009e6a6ec9

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 530.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8e1e79f0253cbd51fc43c4d0ce8804e46ee71f6c173fdc75606662ad18756b52
MD5 c8bf3e07f790b26148508d8ccf015d2c
BLAKE2b-256 564290b42bc07dec0c1418bc9f0ec77a0e4456dfd77a8130cb5b1947bfa50dc3

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 481.6 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 ede1a3a2c377fe12a3930f4b4dd5340e8b32929541d5db027a21816852723438
MD5 a1b9c7efcf9aa23b9f9835258696746c
BLAKE2b-256 fc9bad22dd02bc4ad20253be819ea9d7016dc04ab13f0d0d9e5549f33d3205eb

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6d60f15a0ac18c54a6ca6507c28599c06e2e87a0901e7b548f15243d71905b18
MD5 ab01d5c4e0efba1de3b2ee63f1e87cb1
BLAKE2b-256 172f8a37bc6489069c08ac4b635bf5662ecb2a4c410ba3584c306adce4dfbdfd

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b4051012ca75defa9a1dc6b78185ca58cdc3a247187eb76a6bcf55dfaa2fad4
MD5 d994489715cbc7ce78ab6f958d70f46f
BLAKE2b-256 e1e52ab195d0b1d83ddfc3f49e7cf93d165c70af9a89a806560cf9c871777071

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d156e53b329e187e2dbfca8c28c999210045c45ef22a200b50de9b9e520c2694
MD5 6b1d8cb89a84fc18ffd8f7b0eb99cb11
BLAKE2b-256 1aeccc10dd6397ed839a37eb3084506840cd736531e21a5b0692414a20132673

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 531.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 49fc7220334cc31d14866a0b77a575d6a5945c0fa3bb67f17304e8b838e2a02b
MD5 7d08c234d9133d280a060f5d86eaf05f
BLAKE2b-256 bc72e52ef05d8eea2c3705761de08a099deac2ecd502f0412f7b5827e2b12f79

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 483.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b0c3f39ebfac06848ba3f1e280cb1fada7cc1229538e3dad3146e8d1f9deb92a
MD5 4aaa16b818b433dadea355dfc0526e3c
BLAKE2b-256 018c82c9720ed887aa26025bb0aaa1ca5c8edfe5a5043c8e7e90a24083444d55

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 050e339694f8c5d9aebcf326ca26f6622ef23963a6a3a4f97aeefc743954afd5
MD5 ee781f8c5ae92d8c03b2006ffcc2ac44
BLAKE2b-256 b629f5b22a773d896b4aec89c3442ace9b2eb61ccec4516acf6ed3ab0dfedce5

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e550d8185f2c4725c1e8d3c555fe668b41bd092143012ddcc5343889e1c2a13d
MD5 c108ff979ed7e061c6c862e3c4fc4be2
BLAKE2b-256 15ccbe273767c924cdab385f7dd56d1f04cd1e178f1e0a3919973e854f6c2b30

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9acb22a7b6bcca0d80982dce3d67f267d43e960544fb5dd934fd3abe20c48014
MD5 54356d69a082330385146c031bfeffdd
BLAKE2b-256 b4a83337b87bcd38b2cabd89beefdbc4aa6f7506aa355840b4d0ef533982baee

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 511.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f92d501bf213b16fabad4fbb0061398d2bceae30ddc228e7314c28dcc6641b79
MD5 04c0386e6c55e52e8346c7935a4e92f2
BLAKE2b-256 20dd250b3b3c519773cf7272c141b6df1df000428a5c41e5899ba7823fb7202a

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 470.8 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 0de408626cfc811ef04f372debfcdd5e4ab5aeb358f2ff14d1bdc246ed6272b5
MD5 2fc1c92ca9b82114354c9ae577b1035c
BLAKE2b-256 2747e4492589d110b862c5030ecfe53d0dff5414d6c83842d5cc9de048cd267b

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 235205b60d4d014921f7b1cdca0e19669a9a8978f7606b3eb8237ca95f8e716e
MD5 a461f43456ea6e9eed0be5966e9c9c48
BLAKE2b-256 6469da6227a6aa3100ec4446dec9b7eab9dd8078447d40747fe729290ccdaf0c

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d96cf93e01df9fb03cef5f62346587805e6c0ca6f654c23b8d35315bdc69af59
MD5 d0107c853822c35300690c53858431ee
BLAKE2b-256 700e51638b0888cad78405ad73f2acb0fde3f94778626a75062ed650eadfd8a5

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 efe056fd22fc6ed5c1ab353b6510808409566daac4e6f105e2043797f17b8dad
MD5 097bbd111a640462b4bbc8d47adf65e8
BLAKE2b-256 8d0747d3b918c1f388ce91a196f427eb16696a774d9c833abd92536236ad7eed

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 513.1 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 b1f7b173af649b85126429e11a628d01a5b75973d2a55d64dba19ad8f0e9f904
MD5 b5c0b0866b67e1d87da4e2e469056ed6
BLAKE2b-256 ad3e4ca492369c4776eee092886a0bc7bb245185d9b8b4dd620e54b3e5ccc86f

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: asyncpg-0.26.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 472.4 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for asyncpg-0.26.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 03f44926fa7ff7ccd59e98f05c7e227e9de15332a7da5bbcef3654bf468ee597
MD5 85d911add78c95f33b0eb5f627780b80
BLAKE2b-256 ec4b9471ac6632a1978f84e13d898b699b93d39c7a4ae2febcb47c0e870e34e1

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7129bd809990fd119e8b2b9982e80be7712bb6041cd082be3e415e60e5e2e98f
MD5 f94dbf69e8813d7656c941771151193e
BLAKE2b-256 cb724445de88d9491b2967dd500de8a8d78189a9bcede4fdaad7e069b5a137bf

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3ce7d8c0ab4639bbf872439eba86ef62dd030b245ad0e17c8c675d93d7a6b2d
MD5 15638fb965159711d2403318adb1620f
BLAKE2b-256 bf939f803b9728105bed28a9f6e3089bac4927ebde13b73f6b23471e97422592

See more details on using hashes here.

File details

Details for the file asyncpg-0.26.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for asyncpg-0.26.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3ecbe8ed3af4c739addbfbd78f7752866cce2c4e9cc3f953556e4960349ae360
MD5 5068e72352c48ae66111e838568cea39
BLAKE2b-256 968aed477e5eae2a23c538c80149be14f5010cd1e6a443aa111a4fcf25bc04da

See more details on using hashes here.

Supported by

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