Skip to main content

Quantum computing toolkit and interface to the TKET compiler

Project description

Pytket is a python module for interfacing with TKET, a quantum computing toolkit and optimising compiler developed by Quantinuum. In addition to pytket there are several pytket extension modules for accessing a range of quantum hardware and classical simulators. The extension modules also allow circuit conversion between several widely used quantum software tools including qiskit, cirq and pennylane.

The source code for the TKET compiler can be found in this github repository.

Installation

Installation is supported for Linux, MacOS and Windows. Installation requires python 3.10, 3.11, 3.12 or 3.13.

To install run the pip command:

pip install pytket

See Installation troubleshooting for help with installation.

To install the pytket extension modules add a hyphen and the extension name to the command:

pip install pytket-quantinuum

For a list of pytket extensions see this page: https://docs.quantinuum.com/tket/api-docs/extensions.

Warning. There is a known issue with installing pytket in a conda environment on MacOS: you may not be able to install versions more recent then 1.11.0. The only known remedy is to use an official Python distribution instead.

Documentation and Examples

API reference: https://docs.quantinuum.com/tket/api-docs/

To get started using pytket see the user guide.

Support and Discussion

For bugs and feature requests we recommend creating an issue on the github repository.

User support: tket-support@quantinuum.com

For discussion, join the public slack channel here.

There is also a pytket tag on quantum computing stack exchange.

Mailing list: join here.

Citation

If you wish to cite TKET in any academic publications, we generally recommend citing our software overview paper for most cases.

If your work is on the topic of specific compilation tasks, it may be more appropriate to cite one of our other papers:

  • "On the qubit routing problem" for qubit placement (a.k.a. allocation) and routing (a.k.a. swap network insertion, connectivity solving). https://arxiv.org/abs/1902.08091 .
  • "Phase Gadget Synthesis for Shallow Circuits" for representing exponentiated Pauli operators in the ZX calculus and their circuit decompositions. https://arxiv.org/abs/1906.01734 .
  • "A Generic Compilation Strategy for the Unitary Coupled Cluster Ansatz" for sequencing of terms in Trotterisation and Pauli diagonalisation. https://arxiv.org/abs/2007.10515 .

Project details


Release history Release notifications | RSS feed

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.

pytket-2.1.0-cp313-cp313-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.13Windows x86-64

pytket-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

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

pytket-2.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.8 MB view details)

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

pytket-2.1.0-cp313-cp313-macosx_13_0_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

pytket-2.1.0-cp313-cp313-macosx_13_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

pytket-2.1.0-cp312-cp312-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.12Windows x86-64

pytket-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

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

pytket-2.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.8 MB view details)

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

pytket-2.1.0-cp312-cp312-macosx_13_0_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

pytket-2.1.0-cp312-cp312-macosx_13_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

pytket-2.1.0-cp311-cp311-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.11Windows x86-64

pytket-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

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

pytket-2.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.8 MB view details)

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

pytket-2.1.0-cp311-cp311-macosx_13_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

pytket-2.1.0-cp311-cp311-macosx_13_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

pytket-2.1.0-cp310-cp310-win_amd64.whl (10.2 MB view details)

Uploaded CPython 3.10Windows x86-64

pytket-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

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

pytket-2.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.8 MB view details)

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

pytket-2.1.0-cp310-cp310-macosx_13_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

pytket-2.1.0-cp310-cp310-macosx_13_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file pytket-2.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pytket-2.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytket-2.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c09bea420f9fe19e4fa5b2d23bcff6850b3e422d1cc279f477a5ad808717c3cf
MD5 756961008cd6e39fa9cfd4d73f8110f0
BLAKE2b-256 507721cae8db27b0dabad4d4d7001f0e47f9e06eb3fc862f5bfced72334553c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78919aa211e20867ba55a713c14f5ccf37bbf8c9bd74883a9a067267f5a6818d
MD5 422377f744de0637e40f2e4edf9a5863
BLAKE2b-256 268ba23bbfb33b9523472f598f48f1599a9cfbbefb93800b57d6b549771d5578

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3eea7e045a3e076dbf39e1c037f3abb67537a6af65b67c4c9ace3e73356bfe90
MD5 44cceb4a887c90f079c96c7532777709
BLAKE2b-256 988419fe438deed414d7d0da653be50c093d6051a5af6493df803ede2273b07d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 5bc6d7d77f310b8d876d74e84351dcf9335cd46b2c6567ba80f4f0313c1b5457
MD5 07a1d5c794514cdd27b69c385c1d44a2
BLAKE2b-256 4e5439c2b48b9a5d7e8faa993da07efa008eaf095670873ee80ee62b501d7a15

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4e96279c9626aef350dc239800da3fd8d87f2004fb5af1697f639912fb44262f
MD5 51e0f9d11676db8bd5ff4d5c8d95dbd6
BLAKE2b-256 a5e194192784926bb657942bebf6037108b299dc5ea2fd14fb08cb9ffe5bb5db

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp313-cp313-macosx_13_0_arm64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pytket-2.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytket-2.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8b77e383aa7868e242314f22dc81c8f7eeee522f95b8041527b5de4d7b1b53d7
MD5 cbf6dbcac9135c5dee261dadc5eef9b5
BLAKE2b-256 d65fcd7a8271a985703c1e4c94edaaa8e1d7a06992af69b158644b6589dce3cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55a41a052fd11f1726b6d381110f6e69434a5be5c018a30297e8abac21e30878
MD5 c4c632024712fe6fe784033cbd4755cb
BLAKE2b-256 65520781b650f704e93b0a49e8beff8753f91c3fff356eb5d8a6378181e71ebc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8658bebb1e4046b8d134826659546503a57a7f29648567b05d369e452825ee5d
MD5 88c3e449fd4180f2b3b3482430002fcc
BLAKE2b-256 e36f5ded5f70d10c592c59bbae9ebb541812b4e632e2ffa08c7ea413ffc1281f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 53e2663b03fc211efd66bd3fcab2cbc64e5e86e4d78a3fe4cda0bfac9239352b
MD5 b0f68bc03a337fc350cb1f0ced46412c
BLAKE2b-256 405a53d9fbb6620e2db15ef19a10bb5ddf280891ca1e2d2ecc20d25d286f3230

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 cfcda628a072c3312d152bd7a6b1a6c4f6c34f9b0151f6016c6479dd22160a6f
MD5 f4ad953fbcafdda5afcb60fbdda60a85
BLAKE2b-256 8bd4584196cedacf4a9af79f2dd892a5f75864c93e6980bc8481f78d6f2ecc9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp312-cp312-macosx_13_0_arm64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pytket-2.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytket-2.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dac24e4fac04748ef90ac24ee81d046dd35b69a87f4aca03131fbe883b92c348
MD5 16a787307819f9aa310015d49536fa6c
BLAKE2b-256 e1b0d5c2cd4ec5c3e96575da1f955f42ae0b3fa427f7d31c3d62889ffb579e2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5668ce2cbe239a2c398a9fe4d23f072715316b2ec486003d1169fa08f0ca1ba1
MD5 53373987dd6ab0006782c2b86b0523a6
BLAKE2b-256 5352404ff451482a712162243f3ff8a5795fff8afb82e285fe80fba7a5b8125b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 970d91ba2701eabef18716818b9ca225fb6f609320e7f3c884daecde3d0a3182
MD5 9c0a0e71fab64c7d8fab93f5fab553b0
BLAKE2b-256 76e93739fa9ff4ea0a0773415917bbc4999634fcc216cda56d209205cbd3150a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7d457e544200760149a18e1651ba53db08c94da561c0bacf432d0ad7688d86d3
MD5 d6fc11737d02a8a7e89ff5df1104ed47
BLAKE2b-256 ac47301a09b496d7b4cb19ba30eb6d0c11f798288d7c3c71222bd045d8b2ce07

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d206ea383c759b9323274104209c2e237846c573b1adfb4e6234a6fdaeb579ac
MD5 88063c53aef852450db62288ba84a0a3
BLAKE2b-256 c347a45d82d17d0f9e4435e66a46af0a13ecb19ca589978863eeb67897b31084

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp311-cp311-macosx_13_0_arm64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pytket-2.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytket-2.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0a06837d9589a4c8c474925c469fe02bd4a3a23d2b5ca82bedf63ae3595573c0
MD5 72cbee8b48322a7d62e0439bd7084b42
BLAKE2b-256 be4acbd0ff4438efa30053d76a269e5629a6593786c968e819b9b09a27f20c18

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e644f21efe06a7dc27c6571dfb3a23dc330d0e78e7cf8bd79bb8f7beeeb9ab4
MD5 1b7c653a307a7aa92f75b01adaf0b0ff
BLAKE2b-256 cb88194045f455873148c1b7021d7c6e482bca15eab2cf4f3aa84f3570c78b4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fbeebcbc2dd59eb52588cddb3b015c6cb918d1f544f0622c91633aa22f712d59
MD5 5fe866dc042ceaab4f56f480189185cf
BLAKE2b-256 d70254fd9723385cf2be773994b91d55bbd5369a555aa6b710267650765df12c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8770f072a8c1071d375b38f745d2ea7cf0f2c1c7f20624f12f6b5d0aff2a5871
MD5 e5c5f65b00467f6987b5877545d9d38e
BLAKE2b-256 47e2847342dc438994be7d2e96013c8e77c1adc49aeb46b0a502315d9b946b47

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp310-cp310-macosx_13_0_x86_64.whl:

Publisher: release.yml on CQCL/tket

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

File details

Details for the file pytket-2.1.0-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pytket-2.1.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 3ef4659e0091acdf25ecc5c1a606b0c137f7e2161aa5eb53e71f9b2adfde2a07
MD5 f07e959299969204a23388a9a38dc7fc
BLAKE2b-256 afd9d727565af4ab3d830c35130143dcd5c86133631b95b2025bb7e6d804cbb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytket-2.1.0-cp310-cp310-macosx_13_0_arm64.whl:

Publisher: release.yml on CQCL/tket

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