Skip to main content

Pytest plugin to create CodSpeed benchmarks

Project description

pytest-codspeed

CI PyPi Version Python Version Discord CodSpeed Badge

Pytest plugin to create CodSpeed benchmarks


Documentation: https://codspeed.io/docs/reference/pytest-codspeed


Installation

pip install pytest-codspeed

Usage

Creating benchmarks

In a nutshell, pytest-codspeed offers two approaches to create performance benchmarks that integrate seamlessly with your existing test suite.

Use @pytest.mark.benchmark to measure entire test functions automatically:

import pytest
from statistics import median

@pytest.mark.benchmark
def test_median_performance():
    input = [1, 2, 3, 4, 5]
    output = sum(i**2 for i in input)
    assert output == 55

Since this measure the entire function, you might want to use the benchmark fixture for precise control over what code gets measured:

def test_mean_performance(benchmark):
    data = [1, 2, 3, 4, 5]
    # Only the function call is measured
    result = benchmark(lambda: sum(i**2 for i in data))
    assert result == 55

Check out the full documentation for more details.

Testing the benchmarks locally

If you want to run the benchmarks tests locally, you can use the --codspeed pytest flag:

$ pytest tests/ --codspeed
============================= test session starts ====================
platform darwin -- Python 3.14.0, pytest-7.4.4, pluggy-1.5.0
codspeed: 4.2.0 (enabled, mode: walltime, timer_resolution: 41.7ns)
rootdir: /home/user/codspeed-test, configfile: pytest.ini
plugins: codspeed-4.2.0
collected 1 items

tests/test_sum_squares.py .                                    [ 100%]

                         Benchmark Results
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓
┃     Benchmark   Time (best)  Rel. StdDev  Run time  Iters  ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━╋━━━━━━━━┫
┃test_sum_squares┃     1,873ns         4.8%     3.00s  66,930 ┃
┗━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━┻━━━━━━━━┛
=============================== 1 benchmarked ========================
=============================== 1 passed in 4.12s ====================

Running the benchmarks in your CI

You can use the CodSpeedHQ/action to run the benchmarks in Github Actions and upload the results to CodSpeed.

Here is an example of a GitHub Actions workflow that runs the benchmarks and reports the results to CodSpeed on every push to the main branch and every pull request:

name: CodSpeed

on:
  push:
    branches:
      - "main" # or "master"
  pull_request: # required to have reports on PRs
  # `workflow_dispatch` allows CodSpeed to trigger backtest
  # performance analysis in order to generate initial data.
  workflow_dispatch:

jobs:
  benchmarks:
    name: Run benchmarks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-python@v6
        with:
          python-version: "3.14"

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: Run benchmarks
        uses: CodSpeedHQ/action@v4
        with:
          mode: simulation # or `walltime`
          token: ${{ secrets.CODSPEED_TOKEN }}
          run: pytest tests/ --codspeed

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

pytest_codspeed-4.5.0.tar.gz (209.7 kB view details)

Uploaded Source

Built Distributions

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

pytest_codspeed-4.5.0-py3-none-any.whl (214.1 kB view details)

Uploaded Python 3

pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (829.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (828.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp314-cp314t-macosx_11_0_arm64.whl (222.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (823.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp314-cp314-macosx_11_0_arm64.whl (222.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (823.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp313-cp313-macosx_11_0_arm64.whl (222.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (824.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp312-cp312-macosx_11_0_arm64.whl (222.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (823.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp311-cp311-macosx_11_0_arm64.whl (222.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (823.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp310-cp310-macosx_11_0_arm64.whl (222.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (823.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (822.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pytest_codspeed-4.5.0-cp39-cp39-macosx_11_0_arm64.whl (222.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pytest_codspeed-4.5.0.tar.gz.

File metadata

  • Download URL: pytest_codspeed-4.5.0.tar.gz
  • Upload date:
  • Size: 209.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.5

File hashes

Hashes for pytest_codspeed-4.5.0.tar.gz
Algorithm Hash digest
SHA256 deb6ab9c9b07eba56fcb7b97206c7e48aaff697b6f73a013d8dbe4f62e76afd3
MD5 2cf6c9410e20a13c4f461d3f67f7ed8c
BLAKE2b-256 9e1e213eb4d263140fb907e9fcc5813fdcadb864d6832bf8e2d3f7fd88ca0096

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b19bfb734dcbd47b78022285a6eb9f2bf6331ef1bb8c15c2775058945d5f4ce3
MD5 77b4437d9b782f4b9a762f40ad039ec9
BLAKE2b-256 a32d8dd5e44a5518ba3cd1d63d1f2e631e318330d28cfbe15e548e89d429e289

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16ddd1a9f2dc0615479b2ba3f445a2e3587ce1316296fc79224700e73db06408
MD5 070c9133e169115f9e9133400e74d0fb
BLAKE2b-256 584eeae070c50cb82e44f831dd5b24c854cb641906732bdf74f6314e71c1f266

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca31f5d0e783823a78442d5434382eb32f3885153d1833eb645c92d0c499470b
MD5 68f78b831ae805ae685549bda196647c
BLAKE2b-256 634286a1efde2968bfc83e4fcd60ef1a1094be7f83460799296a12d563522a67

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ef8651294386c032d86070893f8349929280162cf22210dbd488697ce26de21
MD5 2b0c284c869867c07429542c668d0c04
BLAKE2b-256 df695f4a032df6508e8c59049b2fcfce568b79e40b82878df12a2e401a034336

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d4b43f59d1c31e7c193567369f767647e466f95126671c90be084c58633544f
MD5 c90c6e9d9e4165c7fa8f107526acbc26
BLAKE2b-256 753d089614f7bd75fee1388885b886c3f6c1a332ffdce28a4b6b77d3aac7014f

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 399e146240a52458aa4b5fc861a88551bc52eb9e2d30c8f8b328ddebc084e4f6
MD5 617822c4abbc82eb0aaaa37bbc1bde3a
BLAKE2b-256 811d8f34de29cfc3516df25a4553a6d7912735fbde9a276d448b1e00eb35a345

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b73f71e7cb5c83cf5d765d5ca39d08bb1090a9d2d2268496a22ca24b1776e3a
MD5 13afc47a01ecf3bdb998cb6792056780
BLAKE2b-256 da5bd46caecce8aa7519477df75351e312203a20836bec2fcc15256ec34c001b

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cbeeb76d98335037670068c0d30319415f896e9c37eca510249b74684b460925
MD5 a9fde1381648f7cf5556349c4d17525b
BLAKE2b-256 54f0a319da002c800915b9f6a63b2da1e6cdd3230cafb9dea255cec4033e85f8

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 12b49954268ed6828ce5a8d87aff13888946c254bff4ef9472bb4d5ae5272667
MD5 ed5cc954dacf80837a735b7a4bf54f78
BLAKE2b-256 28b44a43ce824cabe2ab8a727e31f90aa403dd2cd580576057024065a3ea74a3

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcc3309d046082a6e0dbd1d9f2bc5c83b0446c93ff011e3880b47c69bf8042cf
MD5 af6d6e586f321f7773a9bbb29a464d72
BLAKE2b-256 5b7b8108a06fcad6160759efc0a1d44e359414a4d23e52bb7079ca95be24058e

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66ecd52a277a5e5f0013e29084b49f9c5f60026d0585f58b86463cb188df5029
MD5 5edae078afb91b7cf1b003ee35c13b52
BLAKE2b-256 95104763d26e8255f243c96e39543d398afb2c64900d3785b8af1898b23a6ce0

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ac844078bd8760e7fc66debe1e90b4593dfce15f60f26b334e1137d4902df3a9
MD5 0539d2fa8dffd89351c8ea0c5775e990
BLAKE2b-256 bc6597823f28ae60921bf353773490906f9095e9d208a6d4bec2e7913695a5e6

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db706a7a4200e8e236c31c77935fedcc0edbf44959ab8c156297909d9e8cfd33
MD5 93a725e365659fce8eef2f33dbf4c65e
BLAKE2b-256 6e3dbf21b10c6d497378785b47e9cefcfc4a43e543443e120c03469940f14a61

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 474730e996d424b17f7301d4b846261cca92d195b9fcb7de38599be9d68ee9ac
MD5 7372d01dcbccac6fe4906a7dc256bd4d
BLAKE2b-256 c7157dd0a37fb85e19d8b2b7366f9615c4e17335f23060275dcfa792ce8b482f

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 be191120b1cb0252b443ef37887c94772bab4ca0c42cad7c15bcbcfcbb656ac4
MD5 c68456a2aac1dcbc7d135121462fc083
BLAKE2b-256 b3899237a2d569b60f84183f6ae6193c6a4a135e5644ee08fed44bcf03d26545

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6da6f26435512110736dd258021bbf7859caf4d2a21c7ed06a86b67a999fac7
MD5 a812608db1808557900e89c0b7c35565
BLAKE2b-256 60f9be1fa43649c9f71cc06d9f2330fb1cac3beddf6357effc9a1817f4831728

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d8b7a880f2cac69d167affe5e85d9fc7f21beeb1c7591ef2109fbc0983b806a4
MD5 aa63c15f7f4ec827ec7ca46aa1b3b1e3
BLAKE2b-256 9d4785b5a6f3ee82cd19374abd244df6fc011e9acd559fc283bdf8cbc6e156f6

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 108ae3fecf8a665f017f2abc92a4d9740c57eb8432436baeb489053787427504
MD5 bb5714dd61aeafd55ddb4a6e56a5fbb4
BLAKE2b-256 09061daee2c11b5873dd42799f989a0d4b39ba1c33dbe4adc6339f1c48edb28e

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddc80dda2018aae3bcac9571d47de26aacd9cfb1764b3a1704fa269474cc83f7
MD5 afc104091e866951f326fa9c500b1904
BLAKE2b-256 272ddd7be8a84dac07f0b72a1372252fc66688533a7771910cdd58544a8b6f36

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98ae57afb1bbfb56e90f41e6e0df6a93d450dab4577058ec2f978dfec54e93ce
MD5 0725765d7e0df91c4294aa2c80432e6e
BLAKE2b-256 ed692a85ca8f864fa1f40df524fcdbe8c8649977a538aebbb1302720788a4eea

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba8205a4df6d10ad2fe0095a7c7a081181ae4c63e2a91d34589935a355e9fd55
MD5 ad487cf219e3e8f9935e9a4fd46acf91
BLAKE2b-256 cdd592bb5072f9c00410ed71bd7bea026123c4f0bbe0b6c77468a5d17eb89e17

See more details on using hashes here.

File details

Details for the file pytest_codspeed-4.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_codspeed-4.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 550bf00dbe2cbd0ddae1502aeedf1896be3525daa2dc053264efae0e3f7f71b4
MD5 2c0d08a366f658f1ab0b16b97053abba
BLAKE2b-256 8a781ac30ae385523f9299fbf7ce5a4891b3e446140947784650de61edcc1dcc

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