Skip to main content

High-Performance Cryptography Extension Library for Kurigram

Project description

TgrCrypto

Rust-powered, AES-NI accelerated drop-in replacement for TgCrypto

CI Status License Python

[!NOTE] This project is currently in beta. The API is stable and compatible with TgCrypto, but it has not undergone a formal security audit.

Requirements

  • Python 3.9 - 3.14
  • Rust 1.83+ (build from source only)

Installation

uv sync --python 3.14
uv run python -c "import tgcrypto; print('TgrCrypto loaded successfully')"

# Or build a distributable wheel
uv build --wheel
uv run python -m pip install dist/tgrcrypto-*.whl

Usage

import tgcrypto
import os

# IGE-256 (data must be a multiple of 16 bytes)
data = os.urandom(1024)
key = os.urandom(32)
iv = os.urandom(32)

enc = tgcrypto.ige256_encrypt(data, key, iv)
dec = tgcrypto.ige256_decrypt(enc, key, iv)

# CTR-256 (arbitrary length)
data = os.urandom(1024)
key = os.urandom(32)
iv = os.urandom(16)
state = bytes(1)

enc = tgcrypto.ctr256_encrypt(data, key, iv, state)
dec = tgcrypto.ctr256_decrypt(enc, key, iv, state)

# CBC-256 (data must be a multiple of 16 bytes)
data = os.urandom(1024)
key = os.urandom(32)
iv = os.urandom(16)

enc = tgcrypto.cbc256_encrypt(data, key, iv)
dec = tgcrypto.cbc256_decrypt(enc, key, iv)

Streaming API

For incremental processing of large data:

import tgcrypto
import os

key = os.urandom(32)
iv = os.urandom(16)
data = os.urandom(1024)

stream = tgcrypto.Ctr256(key, iv)
chunk1 = stream.update(data[:512])
chunk2 = stream.update(data[512:])

IGE also supports incremental block-aligned processing:

import tgcrypto
import os

key = os.urandom(32)
iv = os.urandom(32)
data = os.urandom(1024)

stream = tgcrypto.Ige256(key, iv)
chunk1 = stream.encrypt(data[:512])
chunk2 = stream.encrypt(data[512:])

Compatibility

TgrCrypto is a transparent drop-in replacement for TgCrypto:

import tgcrypto  # works with both TgCrypto and TgrCrypto

Function names, arguments, and return types are identical.

Contributing

# Run Rust tests
cargo test --release

# Run Python API tests on the default uv environment
uv sync --python 3.14
uv run python -m unittest discover -s tests -v

# Build a wheel through the configured PEP 517 backend
uv build --wheel

# Run with clippy
cargo clippy --all-targets --all-features -- -D warnings

License

LGPL-3.0-or-later — see COPYING and COPYING.lesser.

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

tgrcrypto-1.0.0b2.tar.gz (46.0 kB view details)

Uploaded Source

Built Distributions

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

tgrcrypto-1.0.0b2-cp314-cp314-win_amd64.whl (201.8 kB view details)

Uploaded CPython 3.14Windows x86-64

tgrcrypto-1.0.0b2-cp314-cp314-manylinux_2_34_x86_64.whl (296.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp314-cp314-macosx_11_0_arm64.whl (259.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tgrcrypto-1.0.0b2-cp313-cp313-win_amd64.whl (201.6 kB view details)

Uploaded CPython 3.13Windows x86-64

tgrcrypto-1.0.0b2-cp313-cp313-manylinux_2_34_x86_64.whl (296.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp313-cp313-macosx_11_0_arm64.whl (259.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tgrcrypto-1.0.0b2-cp312-cp312-win_amd64.whl (201.4 kB view details)

Uploaded CPython 3.12Windows x86-64

tgrcrypto-1.0.0b2-cp312-cp312-manylinux_2_34_x86_64.whl (295.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp312-cp312-macosx_11_0_arm64.whl (258.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tgrcrypto-1.0.0b2-cp311-cp311-win_amd64.whl (203.1 kB view details)

Uploaded CPython 3.11Windows x86-64

tgrcrypto-1.0.0b2-cp311-cp311-manylinux_2_34_x86_64.whl (295.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp311-cp311-macosx_11_0_arm64.whl (259.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tgrcrypto-1.0.0b2-cp310-cp310-win_amd64.whl (203.4 kB view details)

Uploaded CPython 3.10Windows x86-64

tgrcrypto-1.0.0b2-cp310-cp310-manylinux_2_34_x86_64.whl (296.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp310-cp310-macosx_11_0_arm64.whl (259.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tgrcrypto-1.0.0b2-cp39-cp39-win_amd64.whl (205.8 kB view details)

Uploaded CPython 3.9Windows x86-64

tgrcrypto-1.0.0b2-cp39-cp39-manylinux_2_34_x86_64.whl (297.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

tgrcrypto-1.0.0b2-cp39-cp39-macosx_11_0_arm64.whl (260.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file tgrcrypto-1.0.0b2.tar.gz.

File metadata

  • Download URL: tgrcrypto-1.0.0b2.tar.gz
  • Upload date:
  • Size: 46.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2.tar.gz
Algorithm Hash digest
SHA256 2f06959cc6f622a14e02686e8fe496663312da64fdb75f37d80c989d869cb66e
MD5 e455aa4f3ff58d34565666ff9d6aa761
BLAKE2b-256 faf90411d8607a13fe823f5f5dd20020207098e6e288e9b5ec38f0c49735f865

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2.tar.gz:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 201.8 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 16d1e67a300e5c65780276ffe4db35a3d10adf4e8d497b90c1c8c1749470ccbf
MD5 4f5443b1c18804a4a9022c27a90d8ab0
BLAKE2b-256 646806f83bf0a11d76123d2e9065710518d521491f8f2d56493dd361f417987f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp314-cp314-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1011e7fff6c54cd4f0d62022c4588788b9bfa93d0ea3f5814fd0f580f7c52d99
MD5 c34e5d20be1e651d91380e43494a2e00
BLAKE2b-256 fc3c0932ccdbb91714f780f1849d932cd1c68f68cfb8aa9f9ef2a9f94cfb4ff4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a5fa2064821cd30184605e3244737456a8665309846b9891056b3e1e0f3493e
MD5 93ea83b988932b952d7f23f2e85e637a
BLAKE2b-256 f272eca5cac8b7e6c70b323d81cc986152e3fd7fd985588466e62a81759c480a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 201.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7f062ddc260cc3ae8dc797267960f4e4a5f3e57a950446c2507f0a12f4bd6dcd
MD5 e79230ab65f431b60540f2692ac10058
BLAKE2b-256 1142c3c34d2f2e58337790e922487fde9a0e10d76c7fa95f1ea006dcf983ffd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp313-cp313-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bb4a1dd4bccc04571854a195a9d282e0999ce72bb976d7feff09783880085060
MD5 98e2d596bda646ce9daadfbbe4207cc8
BLAKE2b-256 516cb57dcd78be300df74cd9ebbff62d8d2120ff71589d2a32077b090a5f8dd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2ef609f661cf35521b663c7ec402efed9a40fa79af964077bc470e8826e3fa6
MD5 651aa0383edeeb418203dec5b832681c
BLAKE2b-256 1fdc4f31fd5669794a940c3398806b9ce1ca4b9e6757d95a6c1b578aff3b9635

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 201.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7ea15d378ba22bc9be4ecd7cbf79122047d8a3b591f36da1b8f4716158dc298d
MD5 caeb86040a85fa9e41b7477f813bb2e7
BLAKE2b-256 74f4282202fea24f3730e5a9dd6da7d2c70758e1dc1c537e8dcccf5b6f94f3ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp312-cp312-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4b7c0fcf7e51360cf3bc22162abab9f34322e7ca9c21e38d35e964c74e374a72
MD5 d78cd259c4c0fa5ed08751fbccfb3174
BLAKE2b-256 60ea2c0eca2cd312e510a801fa9872f9728803dcb544788623218a4128da9807

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62f0d20a9a8f2b9c96a9e3fd5c81047a6c8e9359d7dc885ff67ab6696225f2a9
MD5 e243c9c00d584102d0fc6dc159a09a14
BLAKE2b-256 1db857b8b0aec51c55a0ccd52f21c62de0b33817e0aa28437e98dacc536f5656

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 203.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2320b184d275e66d859f502590ee36cdd1a70dabf14cd299dc17045d8669f5e4
MD5 0d887e87629de9038206657592094809
BLAKE2b-256 76d4d469d068c923e7eb70d7dd1aed101be5390de4378498c1e1ab8348299d83

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp311-cp311-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dc751adab723eba25f52dd8ab4e55c3d9218dbc289d325f902b33f6001b5c614
MD5 56b9b52218711d9ea5c5e1c0232e9eed
BLAKE2b-256 766f9794a526d69c5f04ce995346f2b4abde07af380b62f75e13e3d83b440453

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a29e2e6e711192e9fdba16e7ab3eb10c8a0febf93eb72a7d2b6f3c407ae0618c
MD5 54cf643e8ca7352b0bbf8e2bdda46a9a
BLAKE2b-256 3fe0c184499989d4049e3fab0acbccc81a702ee98bd63f1ea3ed987e9b701a4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 203.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b8fa8d95328aceeb0539cbf4e0698dc5cdd18de4a3ca6ac113fc4c1f9ddfc710
MD5 6e39ff88e9aea13e50c4a00d5c3e9a77
BLAKE2b-256 944f3d96dd9b895cf31f83fe240fe6f1e39461d31cc853c816099f7edfe355c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp310-cp310-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b888dfc0dd6fa7f9404e9e1755fccc493a57dcd077e6e5e80ab804ce25eb0c1c
MD5 d0dd1b73deda315987e216c177a99ebb
BLAKE2b-256 173232dcadf83f44182017bba49545e9e38b835077c7164f8d630c4e4f6afaf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f571fceaa7d5d2f40bf43ea7360b82245b84850360e89d9bfafdd815ba14e6ce
MD5 d7695ca46449298d46940c03cf6cbb96
BLAKE2b-256 45bc80668c977cdb239fd35d02c53589a536733f8bdf0505818c59add362b204

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tgrcrypto-1.0.0b2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 205.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgrcrypto-1.0.0b2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 27936c119394e4c638c108cff72430f72dd61ebdfca656df1ca3f691a67f2765
MD5 24b909a74a51d0a31bc4f8fd162c69b7
BLAKE2b-256 a554e7900588d76638cc09b05131ba59ea7750dbf864849e5c0997d1ede589f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp39-cp39-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6d793902438ccc9dfb0a26ce0c86c94e27c2775e79c201838026b76648545ff6
MD5 415e58c45d30067edf5c48afdaff97f6
BLAKE2b-256 c5bd641e7e9b524600f9582039f131c9908d6144eef7f857e9f4a3ca0406a7fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp39-cp39-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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

File details

Details for the file tgrcrypto-1.0.0b2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgrcrypto-1.0.0b2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54d9eccaa73e5f9fed295be972574561ca5f84b0c3e6077ec1f9e8036384fdeb
MD5 6d432fab77fb275c995516d21642a0e3
BLAKE2b-256 32927b58a5f353b6be1868b05e3918d4441412286734f725b78c7ca1e62d5e6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgrcrypto-1.0.0b2-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgrCrypto

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