Skip to main content

The fastest tokenizer for modern LLMs, up to 20x faster. Drop-in for transformers.AutoTokenizer, byte-exact, never quadratic.

Project description

tuetoken

The fastest tokenizer for modern LLMs, up to 20x faster.

tuetoken is a BPE tokenizer with a fast, safe Rust core. It is a drop-in replacement for 🤗 transformers.AutoTokenizer: it loads any model's own tokenizer.json and reproduces tokenization exactly (special tokens, chat templates, padding/truncation), up to 20x faster. It also loads OpenAI/tiktoken encodings natively, and its O(n) merger stays fast even on adversarial inputs (hashes, base64, minified code) where other tokenizers degrade to O(n²).

from tuetoken import AutoTokenizer

tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
ids = tok.apply_chat_template(messages, add_generation_prompt=True)

Detection is 100% config-driven (the model's tokenizer.json, never its name), so the same code works across families: Llama, Qwen, Mistral/Mixtral, DeepSeek, Gemma, Phi, GPT-OSS, GLM, Kimi, and more.

Install

pip install tuetoken

There are no required runtime dependencies: the core is the compiled Rust extension. from_pretrained needs huggingface_hub; chat templates need jinja2; return_tensors= needs numpy/torch (all optional: pip install tuetoken[auto]).

Build from source (development, or a platform with no prebuilt wheel):

git clone https://github.com/pyybor/tuetoken && cd tuetoken
pip install maturin
maturin develop --release

Drop-in AutoTokenizer

The full 🤗 API, byte-exact with transformers.AutoTokenizer:

from tuetoken import AutoTokenizer
tok = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")

tok.encode("Hello <|eot_id|> world")                 # special-token aware -> list[int]
tok.decode(ids, skip_special_tokens=True)            # -> str
tok(texts, padding=True, truncation=True,            # batch dict: input_ids + attention_mask
    max_length=512, return_tensors="np")             #   (also "pt" for torch)
tok.apply_chat_template(messages, tokenize=True,     # Jinja2 chat templates (+ tool_use)
                        add_generation_prompt=True)
tok.batch_decode(...) ; tok.convert_ids_to_tokens(...) ; tok.tokenize(...)
tok.bos_token_id ; tok.eos_token ; tok.pad_token_id ; tok.vocab_size

This matches transformers.AutoTokenizer token-for-token across byte-level models (Llama, Qwen, DeepSeek, …) and SentencePiece models (Mistral, Phi-3, CodeLlama, …).

OpenAI / tiktoken encodings

tuetoken loads OpenAI's encodings natively, with no tiktoken dependency, and is faster than tiktoken itself, by up to an order of magnitude on long inputs:

from tuetoken import Tokenizer
enc = Tokenizer.from_tiktoken("cl100k_base")   # also "o200k_base", "gpt2", ...
enc.encode_ordinary("Hello world")             # list[int]

Lower-level core

Tokenizer is the raw BPE engine (no special tokens or chat templates; that is what AutoTokenizer is for). Reach for it when you only need fast token ids or counts:

from tuetoken import Tokenizer
enc = Tokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")   # or Tokenizer("tokenizer.json")

enc.encode_ordinary("Hello world")                # list[int]
enc.encode_ordinary_batch(texts, num_threads=0)   # parallel (0 = all cores), GIL released
enc.decode(ids) ; enc.count_tokens("Hi") ; len(enc)

For ML pipelines there are zero-copy numpy paths, a padded training-batch helper, and byte-span offsets:

import numpy as np
arr   = np.frombuffer(enc.encode_to_bytes(text), dtype=np.uint32)   # skip per-token boxing
text  = enc.decode_array(arr)
batch = enc.encode_batch(texts, max_length=512, pad_id=0)           # input_ids + attention_mask
ids, offsets = enc.encode_with_offsets("Hello café")                # byte spans, ByteLevel only

Coverage

tuetoken works with essentially every modern LLM tokenizer: ByteLevel BPE (Llama, Qwen, DeepSeek, Mistral/Mixtral, GPT-OSS, GLM, Phi, OLMo, Yi, …), SentencePiece (Llama-2, Mistral, Phi-3, CodeLlama, Gemma, …), and OpenAI/tiktoken encodings. We extend coverage constantly; if a tokenizer you need isn't supported yet, please open an issue.

Anything tuetoken can't reproduce exactly fails closed (raises at load) rather than mistokenizing, so you never get silently wrong tokens.

Linear-time on any input

Classic BPE is O(n²) per chunk and collapses on long, poorly-merging content (random identifiers, hashes, base64, minified code), tiktoken included. tuetoken's merger is O(n), so adversarial inputs that hang other tokenizers for minutes stay in the millisecond range, byte-identical.

Correctness

Every claim above is validated byte-exact against the reference tokenizers (transformers, tokenizers, tiktoken) on a large, adversarial corpus. That is the only reason those libraries appear in the test dependencies; they are not runtime dependencies of tuetoken.

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

tuetoken-0.1.0.tar.gz (703.2 kB view details)

Uploaded Source

Built Distributions

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

tuetoken-0.1.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

tuetoken-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

tuetoken-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

tuetoken-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tuetoken-0.1.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

tuetoken-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tuetoken-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

tuetoken-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tuetoken-0.1.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

tuetoken-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tuetoken-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

tuetoken-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tuetoken-0.1.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

tuetoken-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tuetoken-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

tuetoken-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file tuetoken-0.1.0.tar.gz.

File metadata

  • Download URL: tuetoken-0.1.0.tar.gz
  • Upload date:
  • Size: 703.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tuetoken-0.1.0.tar.gz
Algorithm Hash digest
SHA256 20715367d0b92477f0af6cdc53cfeb269509a90b092720910e297b1605112441
MD5 fb20f848d6b8357410873e57dba85e9d
BLAKE2b-256 5335ef3160d60cbd71c7a01cac6ab2d84b8a024146dab7e9bebe7875468a9479

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0.tar.gz:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tuetoken-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 tuetoken-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 740d513f74cb6b8b0871fcfb2dda51b9f810e54564519d1017b5805e5a583f2c
MD5 f23c6625bb717b3a3d09a1841e474119
BLAKE2b-256 31a9299970118a6f201f6dd44407289122562671a09a63ec7fa4249edd71e602

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7512ce136f6800cdf5d7536e325865b7169b450ac7df224717621367d01fa8aa
MD5 d167b19078f20488669babd8f2a0d5f9
BLAKE2b-256 3d71b877b9d137158ff180d7e017abb8403f4a03b9cc781e3b529af7b9c2ec99

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 21a54f6048ed358ead7d17ad9f9d9212694d79253295e32b8a45dd0df68b7e7b
MD5 6c433972581575428c9e6d586a4f91a6
BLAKE2b-256 3105867dcca1af0b86ee32d592324bbdc38e8a803d2912b73764d6a88fdfc20a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f43ce7d6ba72bd084e23f3dfcc92c32162cde64b70b4d0c5a80d98c9b04c2a4e
MD5 2563b95b88ee7e0e5b4b38cd69478d6f
BLAKE2b-256 ab9237995a7b0cc14d133e645cc72d18181a8fe10cd03686a93d0004583e2fa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tuetoken-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 tuetoken-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9a64eeb5433019fb6def3c137e4ac663a8910b532cb0d550d34b99583ba13ebc
MD5 898bf1438688421c464a7c7bf4deffd2
BLAKE2b-256 2abd98a8d5d065f58052ec76627738953228a52228e703d2631dd9a842472434

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ecef6b4bf4e3b5beb6729302448ef89a8fa4549c511fe319494b8b7f14dbb269
MD5 df1f6d5b8c338d81cb1ea261758c8685
BLAKE2b-256 dc7fd820558c5f97ee17f24f7c76d362d11e4ce554dc11b7b19f312ee121daeb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 29fba5d3a42fbdb1c63b7680b06871825d8540d4108e9d2012d590cdc37d25a3
MD5 2d63a01dd95cd5e39ecaed3e13899711
BLAKE2b-256 8c1cf3ba2b179117c2d200922dd39e3575337e7477816da3bbae19f17cfbf851

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63d202b372d5ac529dc62388fb194b1c89d4d0d71b99f5f28816e57dfaedd31b
MD5 ce13d5e0fb3494c344e64ac5baac4afe
BLAKE2b-256 065d350408e1487529badef296ed8dbc02e676162a32bc7c754f739d42652c78

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tuetoken-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 tuetoken-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 688a732b2e2b5c19cdc738149537ffc7de7ae31675e300df02be1a53c983ae85
MD5 f1f9bbcb1e83d4f623e3db4a1057aa23
BLAKE2b-256 7fcff5e94b417493eb7449610fdc30d7adf6edb10b75a8b6f5ab6fcdd906406a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 516a26c65083e701e504301136cfaf4b8b71e20113d09d24f1cbc8e6d11fa002
MD5 83a179c67346067516ca2111f3a1b5bc
BLAKE2b-256 7f5fdc0a988912935daf5c3a7724be07f40ceeec4b7fb52679ade57f4b3e2d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37a7c3465512c696d5bb190b434fe083546a4c287594b1f7d662e57e9081af44
MD5 cb3427208024a66a4cdb6ed0e1b7893c
BLAKE2b-256 5ff7a1578897b40588dd9121aec9aca70dfdfb9916998deb0cadb1af56671f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76b82cafd578975b1b6b0c92210db7605582b25cdd585e279c54d61441f56107
MD5 5acba944f99f89c9d525b6afca2af6e6
BLAKE2b-256 901b4fd90ea368ee6d701c55561d7d69c0db58e45318dd0e5ba6ee514bfee1ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tuetoken-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 tuetoken-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2d1fce7ab6e1d4c8f67835cb0a5f52d2c305f3d406d81e28177c67dc51286c23
MD5 f8328a3ad9428dbd7192202ca09d186f
BLAKE2b-256 efc021134597d9bdbf545685d4c8ff2226eb63a4b80fd988482456ab06bc63b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e09381ce9ae9f329cdefe3ac6cee6026199078ff1f16373a5a2cd6b0944b43f5
MD5 9b11aede3ffd43c1b4d3afdbb17bde23
BLAKE2b-256 5d541bf89c9c95bb47b8e8962674beb4767a830f521236aba50acbef8ac5d104

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d61393a3d3d730ba7fc1ad0ec8e3c633f1bb8a7cefd6e04d1add6bc811687763
MD5 7abb68a5b4ad1e5221f994786fb02a21
BLAKE2b-256 12f73e0d225c18ce688490f0a4b7e73216dfea01255ee5e0a5eec3c9680b33ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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

File details

Details for the file tuetoken-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tuetoken-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cda81058624b1f7ba284708a2864536086ef44a5717824d311f72ccbfa2d8486
MD5 528248b299620dbabc8f202d13325f59
BLAKE2b-256 5ed67192e1a66617d328bc6c5a3e6ff0585c27a8f98ca386ed3a051668ebd9e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuetoken-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tuetoken-org/tuetoken

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