Skip to main content

A refreshing functional take on deep learning, compatible with your favorite libraries

Project description

Thinc: A refreshing functional take on deep learning, compatible with your favorite libraries

From the makers of spaCy and Prodigy

Thinc is a lightweight deep learning library that offers an elegant, type-checked, functional-programming API for composing models, with support for layers defined in other frameworks such as PyTorch, TensorFlow and MXNet. You can use Thinc as an interface layer, a standalone toolkit or a flexible way to develop new models. Previous versions of Thinc have been running quietly in production in thousands of companies, via both spaCy and Prodigy. We wrote the new version to let users compose, configure and deploy custom models built with their favorite framework.

Azure Pipelines Current Release Version PyPi Version conda Version Python wheels Code style: black Open demo in Colab

🔥 Features

  • Type-check your model definitions with custom types and mypy plugin.
  • Wrap PyTorch, TensorFlow and MXNet models for use in your network.
  • Concise functional-programming approach to model definition, using composition rather than inheritance.
  • Optional custom infix notation via operator overloading.
  • Integrated config system to describe trees of objects and hyperparameters.
  • Choice of extensible backends.
  • Read more →

🚀 Quickstart

Thinc is compatible with Python 3.6+ and runs on Linux, macOS and Windows. The latest releases with binary wheels are available from pip. Before you install Thinc and its dependencies, make sure that your pip, setuptools and wheel are up to date. For the most recent releases, pip 19.3 or newer is recommended.

pip install -U pip setuptools wheel
pip install thinc

See the extended installation docs for details on optional dependencies for different backends and GPU. You might also want to set up static type checking to take advantage of Thinc's type system.

⚠️ If you have installed PyTorch and you are using Python 3.7+, uninstall the package dataclasses with pip uninstall dataclasses, since it may have been installed by PyTorch and is incompatible with Python 3.7+.

📓 Selected examples and notebooks

Also see the /examples directory and usage documentation for more examples. Most examples are Jupyter notebooks – to launch them on Google Colab (with GPU support!) click on the button next to the notebook name.

Notebook Description
intro_to_thinc
Open in Colab
Everything you need to know to get started. Composing and training a model on the MNIST data, using config files, registering custom functions and wrapping PyTorch, TensorFlow and MXNet models.
transformers_tagger_bert
Open in Colab
How to use Thinc, transformers and PyTorch to train a part-of-speech tagger. From model definition and config to the training loop.
pos_tagger_basic_cnn
Open in Colab
Implementing and training a basic CNN for part-of-speech tagging model without external dependencies and using different levels of Thinc's config system.
parallel_training_ray
Open in Colab
How to set up synchronous and asynchronous parameter server training with Thinc and Ray.

View more →

📖 Documentation & usage guides

Documentation Description
Introduction Everything you need to know.
Concept & Design Thinc's conceptual model and how it works.
Defining and using models How to compose models and update state.
Configuration system Thinc's config system and function registry.
Integrating PyTorch, TensorFlow & MXNet Interoperability with machine learning frameworks
Layers API Weights layers, transforms, combinators and wrappers.
Type Checking Type-check your model definitions and more.

🗺 What's where

Module Description
thinc.api User-facing API. All classes and functions should be imported from here.
thinc.types Custom types and dataclasses.
thinc.model The Model class. All Thinc models are an instance (not a subclass) of Model.
thinc.layers The layers. Each layer is implemented in its own module.
thinc.shims Interface for external models implemented in PyTorch, TensorFlow etc.
thinc.loss Functions to calculate losses.
thinc.optimizers Functions to create optimizers. Currently supports "vanilla" SGD, Adam and RAdam.
thinc.schedules Generators for different rates, schedules, decays or series.
thinc.backends Backends for numpy and cupy.
thinc.config Config parsing and validation and function registry system.
thinc.util Utilities and helper functions.

🐍 Development notes

Thinc uses black for auto-formatting, flake8 for linting and mypy for type checking. All code is written compatible with Python 3.6+, with type hints wherever possible. See the type reference for more details on Thinc's custom types.

👷‍♀️ Building Thinc from source

Building Thinc from source requires the full dependencies listed in requirements.txt to be installed. You'll also need a compiler to build the C extensions.

git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .

Alternatively, install in editable mode:

pip install -r requirements.txt
pip install --no-build-isolation --editable .

Or by setting PYTHONPATH:

export PYTHONPATH=`pwd`
pip install -r requirements.txt
python setup.py build_ext --inplace

🚦 Running tests

Thinc comes with an extensive test suite. The following should all pass and not report any warnings or errors:

python -m pytest thinc    # test suite
python -m mypy thinc      # type checks
python -m flake8 thinc    # linting

To view test coverage, you can run python -m pytest thinc --cov=thinc. We aim for a 100% test coverage. This doesn't mean that we meticulously write tests for every single line – we ignore blocks that are not relevant or difficult to test and make sure that the tests execute all code paths.

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 Distribution

thinc-8.1.4.tar.gz (180.5 kB view details)

Uploaded Source

Built Distributions

thinc-8.1.4-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

thinc-8.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (804.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

thinc-8.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (759.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

thinc-8.1.4-cp310-cp310-macosx_11_0_arm64.whl (688.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

thinc-8.1.4-cp310-cp310-macosx_10_9_x86_64.whl (759.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

thinc-8.1.4-cp39-cp39-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

thinc-8.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

thinc-8.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (768.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

thinc-8.1.4-cp39-cp39-macosx_11_0_arm64.whl (692.4 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

thinc-8.1.4-cp39-cp39-macosx_10_9_x86_64.whl (766.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

thinc-8.1.4-cp38-cp38-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

thinc-8.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (817.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

thinc-8.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (769.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

thinc-8.1.4-cp38-cp38-macosx_11_0_arm64.whl (683.5 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

thinc-8.1.4-cp38-cp38-macosx_10_9_x86_64.whl (752.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

thinc-8.1.4-cp37-cp37m-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.7m Windows x86-64

thinc-8.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (804.2 kB view details)

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

thinc-8.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (762.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

thinc-8.1.4-cp37-cp37m-macosx_10_9_x86_64.whl (746.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

thinc-8.1.4-cp36-cp36m-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.6m Windows x86-64

thinc-8.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (807.4 kB view details)

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

thinc-8.1.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (765.0 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

File details

Details for the file thinc-8.1.4.tar.gz.

File metadata

  • Download URL: thinc-8.1.4.tar.gz
  • Upload date:
  • Size: 180.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4.tar.gz
Algorithm Hash digest
SHA256 e48156e8eea9612c2a19cda50fa22025a6563a10646ad1d289b8d8fc9221b12c
MD5 6c643c9cd69fc4e0fe34c20750b6174c
BLAKE2b-256 7ecf465337fd0c225ef58b2b62f1ace9de4283ddfe364b2455dbc32a479cf017

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: thinc-8.1.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 77e80000436d7eef3a88c3d671b50caf6b191167778e5def20c3c05ebc2f1b37
MD5 a227d5391831edcae7126c7cee20ea62
BLAKE2b-256 06533149d4ddf8ed8504c60cb527c9312cc3a043ed1daca7473ec8b8b92a674d

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3924bdc7f593a312374328c396e41deac6dde4d68b27d3723e48849fbdf7881
MD5 4fcf4f782fdc4133ba1c22ea8c158828
BLAKE2b-256 60d36941784955d478768e44447f58c6a3d6fdcdaa02c43121a798e80fdc167e

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60dc028d8b97bded53e87d4a1cfffe463c5028b9fdea9a0f10a37901507c3512
MD5 2a35b3732aa130fdf24ab77fe0bbe516
BLAKE2b-256 4e4a27756462c2a00f7b59013da47e57516a847b99422345678d6f948de8531f

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 115c6441bbca9ea9c1373381fb805c5db8fb828122aab5e8e627a37b8b555c70
MD5 55f1f4cbe81a652eaaab19f1f00a87d2
BLAKE2b-256 b926bb48e41332ab5b2f535fdb2bfc03d1ac4757a059166c431a2174aee64cfc

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 66d80e345af60dce91ea0532d79291c17a8bb08828cf8e07a4361415f3f0e590
MD5 c5641016828b3cdd09242ed7fac9c60c
BLAKE2b-256 c84057cda795a7d26b7a2e74c06ed171f427e86d3ef64f62875756d952a9433d

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: thinc-8.1.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2e164728646aa164d59065600215b47a0824f63c0c4dca20c55e8a3253004266
MD5 091ff54b8c7adf6fbab08675fad47bfa
BLAKE2b-256 9d101a0bde7331d93f00378760be983f0f0c6c6df4fa1579f8c2ba179543a801

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86df88538a3264ed9f1b77f0f06f0bdb17af4682543f5a6cf5549d39afaaeb6b
MD5 15643eda8257e27b4e959aa43e17b86e
BLAKE2b-256 121837495ffd5637126bc06b6a4e7c39f9cd56ac0ad78c275835530f54f80592

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58f8ba1df3240ac87c126c12c42c8f90a6c2eae65c5592a95dd0cdb2ceae65b0
MD5 78bcc26fbe8468bb21a39040c31cd308
BLAKE2b-256 433a1c868064728de8980465937846758d25b059f1f15aa59780b5bda1d31d9d

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad2df5077777e272845bb99641d708a7cc78628f6b5a41cf3bcd221fc192e337
MD5 fea43a12cc879ac8eee316aa28419529
BLAKE2b-256 2f3f8b76d8ef12bae4b35adface253f4e481b7402f0ba4258216a7d76004f288

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c4bb26c5586b26b4fb208b8cb0d9f0c3864fcf88d232a4884ff40c1e7786f533
MD5 1225e4f3229334ec9eb36dc7560eacd9
BLAKE2b-256 10d367b0f2a97348b1f7b09c64dc0f501b52ce7f5da2e53bb4c8c6de405d65c5

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: thinc-8.1.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 618c08c50fc132e8592bb47bf44ecd26042aa84cb137e5f20efaa21e1ae1bc8c
MD5 8fa5bbff0c6f4659ee829e001ad663c9
BLAKE2b-256 ad1ef7bcf33dfcd2c4885cf966ff585fcfb7076499206555fbd5efa5b54e4109

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bef909c6c12580e8799e0afc52edbdb526122c67819c782fe3c2af102ae6ea21
MD5 33a5a659f61f0dbb8222afd5b5d118de
BLAKE2b-256 5b42e62ff27899ff1c9e6de7260c7f5f60a7d4df421590c7fbecbfb7c00d53da

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1a489843be501e60ee22db6a26afdf5b0ffb23e5245f915dd395e933806f9b47
MD5 5e6d699ee86495eb0b7803e8ed9b2e88
BLAKE2b-256 764bfddf648497e2db5ffe2b127644bfe947e95566fdae73f1cef53fdd166318

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e910ec0112f6b240b046762e120c6c6c16190005139bee4b35ae5566212cb056
MD5 1c44ca24d585f8aed44519ad418b722f
BLAKE2b-256 c9579f5e5fe62d0dca7d1de8bf8674d7afac68242a69293202357d5834b988d6

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1ec567a85c6e9ad04786058ab4efb398e98ecccb104dd2e9a10ad9e3f192714e
MD5 7dc8d819a245907df843e33dba17fe64
BLAKE2b-256 518716c7bcd17d7df44cf7eb0916c0d28cadc970d9f201ab44250876025700d3

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: thinc-8.1.4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e166dad370a57d3bf66a054a2fc5fcec4f8244a4ad301c537781e9c865ac9bf1
MD5 13c35b0d2a13dc571c381dafe1c66531
BLAKE2b-256 018b2457bd00cfe13b14baabc875dab9e88cbbb8d60835b5d49b30fa47676c09

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06145ea21db6d1ed6c8b8ae291c338feb239cd42a518139dd8644c805c375ffc
MD5 d95a377ad1c92565fc85fe60331d08f0
BLAKE2b-256 cf2968618f96eda27487f86f694efa3d9b16f0617e2133e0e7ea76dbda817f6d

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b2999b6d70a83aae1f985eed7d6ed63fd239e4c375cadc6e5a5d3068917c8cca
MD5 56b73c13ae9adc63c92e0a39f4fb54cc
BLAKE2b-256 2667a4e8b087e9f0d3925f959b232d8b624b48d65d615c46350cf4d036bcfe88

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f7d6f3ceadc19a387cf4598af42c1dc59eaf034b9dc852812845faf7303868d9
MD5 f104348933384aa16ea5a693e23b34e1
BLAKE2b-256 7c8d677cc67790b2a32f45500b280c9bbc1cb9304cb5356b3d1b8f7da2a4c0d6

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: thinc-8.1.4-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for thinc-8.1.4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 224a93db5143c30d6c132ffd9843d1095a5c014261412c10c5363b498aacbbef
MD5 8c010773bad8b13ca54ea98705c26b99
BLAKE2b-256 a825f34ea054170891b3984e9027d12773e15c7a95e06fc374dcaffdd3a2fd97

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f2c20192316191f1cde1a0cb0f48e016e6a817cf106cc2169c47bdaf1bc3b58
MD5 4f2972c65c2974add459202daca2dcaf
BLAKE2b-256 27172c54bc287ee8591181677b4b8acfcce82abd85c50e2e34345f59d6708033

See more details on using hashes here.

File details

Details for the file thinc-8.1.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thinc-8.1.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7eabd670ca66475d1de04d9ecb4871303e68c5e309e713923d1ae4be17fe5a4
MD5 cd6ee9e1820035557eaf2a029edaafc8
BLAKE2b-256 650f6097147c90b001174ba25bebfb8861955baaea7300933f39650ccd37fe2d

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