Skip to main content

Aerospike Python Client - PyO3 + Rust binding

Project description

aerospike-py

PyPI CI Python Rust PyO3 License

Aerospike Python Client built with PyO3 + Rust. Drop-in replacement for aerospike-client-python powered by the Aerospike Rust Client v2.

Features

  • Sync and Async (AsyncClient) API
  • CRUD, Batch, Query, UDF, Admin, Index, Truncate
  • CDT List/Map Operations, Expression Filters
  • Full type stubs (.pyi) for IDE autocompletion

API details: docs/api/ | Usage guides: docs/guides/

Drop-in Replacement

Just change the import — your existing code works as-is:

- import aerospike
+ import aerospike_py as aerospike

config = {'hosts': [('localhost', 3000)]}
client = aerospike.client(config).connect()

key = ('test', 'demo', 'key1')
client.put(key, {'name': 'Alice', 'age': 30})
_, _, bins = client.get(key)
client.close()

Quickstart

pip install aerospike-py

Sync Client

import aerospike_py as aerospike

with aerospike.client({
    "hosts": [("127.0.0.1", 3000)],
    "cluster_name": "docker",
}).connect() as client:

    key = ("test", "demo", "user1")
    client.put(key, {"name": "Alice", "age": 30})

    record = client.get(key)
    print(record.bins)      # {'name': 'Alice', 'age': 30}
    print(record.meta.gen)  # 1

    client.increment(key, "age", 1)
    client.remove(key)

Async Client

import asyncio
from aerospike_py import AsyncClient

async def main():
    async with AsyncClient({
        "hosts": [("127.0.0.1", 3000)],
        "cluster_name": "docker",
    }) as client:
        await client.connect()

        key = ("test", "demo", "user1")
        await client.put(key, {"name": "Bob", "age": 25})
        record = await client.get(key)
        print(record.bins)  # {'name': 'Bob', 'age': 25}

        # Concurrent operations
        tasks = [client.put(("test", "demo", f"item_{i}"), {"idx": i}) for i in range(10)]
        await asyncio.gather(*tasks)

asyncio.run(main())

Performance

Benchmark: 5,000 ops x 100 rounds, Aerospike CE (Docker), Apple M4 Pro

Operation aerospike-py sync official C client aerospike-py async Async vs C
put (ms) 0.140 0.139 0.058 2.4x faster
get (ms) 0.141 0.141 0.063 2.2x faster

Sync performance is on par with the official C client. Async throughput is 2.2-2.4x faster — the official C client has no Python async/await support (attempted and removed).

Why async matters

The official C client supports async I/O internally (libev/libuv/libevent), but its Python bindings cannot expose async/await — the attempt was abandoned and removed in PR #462. The only concurrency option with the C client is asyncio.run_in_executor() (thread pool, not true async).

aerospike-py provides native async/await via Tokio + PyO3, enabling asyncio.gather() for true concurrent I/O — critical for modern Python web frameworks (FastAPI, Starlette, etc).

Full benchmark details: benchmark/ | Run: make run-benchmark

For AI Agents

This project supports the llms.txt standard. Use the following prompt to give your AI agent full context about aerospike-py:

Fetch and read https://kimsoungryoul.github.io/aerospike-py/llms-full.txt to understand the aerospike-py Python client API, then write code based on that documentation.
  • llms.txt — Documentation index for AI agents
  • llms-full.txt — Complete documentation in a single file

Claude Code Skills & Agents

이 프로젝트는 Claude Code 자동화가 설정되어 있습니다.

Skills

/skill-name으로 호출합니다.

Skill 명령어 설명
run-tests /run-tests [type] 빌드 → Aerospike 서버 보장 → 테스트 실행 (unit/integration/concurrency/compat/all/matrix)
release-check /release-check 릴리스 전 검증 (lint, unit test, pyright, type stub 일관성, 버전 확인)
bench-compare /bench-compare aerospike-py vs 공식 C 클라이언트 벤치마크 비교
test-sample-fastapi /test-sample-fastapi aerospike-py 빌드 → sample-fastapi 설치 → 통합 테스트 실행
new-api /new-api [method] [desc] 새 Client/AsyncClient API 메서드 추가 가이드 (Rust → Python 래퍼 → 타입 스텁 → 테스트)

Subagents

코드 리뷰/분석 시 자동으로 활용됩니다.

Agent 설명
pyo3-reviewer PyO3 바인딩 리뷰 (GIL 관리, 타입 변환, async 안전성, 메모리 안전성)
type-stub-sync __init__.pyi stub과 Rust 소스 간 일관성 검증

Hooks

파일 편집 시 자동 실행됩니다.

Hook 트리거 동작
Python auto-format .py 편집 후 ruff format + ruff check --fix
Rust auto-format .rs 편집 후 cargo fmt
Binary/lock 보호 .so, .dylib, .whl, uv.lock 편집 시 편집 차단

Contributing

See CONTRIBUTING.md for development setup, running tests, and making changes.

Code stats

tokei 기반. 설정: tokei.toml + .tokeignore

# 순수 구현 코드만 (tests, examples, benchmark 제외)
tokei

# 테스트 + 벤치마크 + 샘플 포함
tokei src rust/src tests benchmark examples

순수 구현 코드:

$ tokei
 Rust                                        30         8,281         7,298
 Python                                      17         5,938         4,882
 Total                                       47        14,744        12,180

테스트 + 벤치마크 + 샘플 포함:

$ tokei src rust/src tests benchmark examples
 Rust                                        30         8,281         7,298
 Python                                      95        20,805        16,306
 Total                                      125        29,611        23,604

License

Apache License 2.0 — see LICENSE for details.

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

aerospike_py-0.0.1.tar.gz (113.0 kB view details)

Uploaded Source

Built Distributions

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

aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp313-cp313-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aerospike_py-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

Details for the file aerospike_py-0.0.1.tar.gz.

File metadata

  • Download URL: aerospike_py-0.0.1.tar.gz
  • Upload date:
  • Size: 113.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aerospike_py-0.0.1.tar.gz
Algorithm Hash digest
SHA256 78401406e502c8244c724125a43674fcb05e130a420db3bed5f49815ac4ec4da
MD5 4daac981188169cea6b9066e45357d5b
BLAKE2b-256 c3ebec78274d5d3195dd8c498df0380dd29792275a1e13b14ae9d9d789b807e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1.tar.gz:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5213b6cee8a3a6aa5b2e854f45b1ba57ab98abc0102a8d5e090ae038c2571ac9
MD5 4fa63384952698df2140af7306c58724
BLAKE2b-256 6adb7ee4bacf9d36149588c92c8865d5b5f8ce6d56a7db0321164ee716bd5dbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 429606b12533ee92e8a10dc2cef00cc78874a08a09e788f7821ea9533b8f2eaa
MD5 1a67d6fd783e6ca83d388ff0bafa1d47
BLAKE2b-256 a365eecb9fe3de87c768bfd5b4c8db503dab24bb24d6ae82ca59998f408c3f60

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 25a9a19825b0eb477b9543c2f95acc76d26d69cf80eb8a7a08521b6249873e30
MD5 99884a5d0644113e7800996134d9c868
BLAKE2b-256 005cc176fab8ad0b9314fa63c4862bcab63c54b1203aaa8f524a2f4c8e8ee558

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 470c1e340f6e5a4175dae230e0d07e39acf38be35aa84027b86df49f97fe4583
MD5 d03c3aa64d0ec546fb0c559b68c635ff
BLAKE2b-256 54b238c4d3fc86a93a38bd5ee4a7d72a23818c0946566d764a689b84a8b0e36e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db23f5100fad1dc2962f5f691b80aeaf116f057602b4ff5ba8ad46ee44aab3e1
MD5 04a73a8f4c1eb89622516e5818f7edb3
BLAKE2b-256 5686edcb94e7c64a8fce146dcc442c69077085c4ccad64535f9319a54b03a890

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e0ddfd08c26fa32ea141f53144899bc8c07c20dacfcdb1b1170b1c11b46626a1
MD5 87256fb1ba6c085c147cb1150a654bc6
BLAKE2b-256 fad62a6e4dd9c413eef43b9fbfc917793bb7c7f2d52cb1dd0fd7e85353eb074f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c669c9d6ac343bc971f27ef8f836b16307b0c5d60bd4a30535accb5e13724776
MD5 5b7c8273933541dae0754b626c226351
BLAKE2b-256 06e59c02b18b24d58aafc2700b1d356bd0710bb6d0bba7ac4ca808f71501000c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313-win_amd64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e41797d309eaec4dc1a2ef35ceec9fa697c4c2307e6457408dc61644d500d5e2
MD5 4f0179a391736ad4834e26d520accfcd
BLAKE2b-256 3c8a749411a10985e675d1cff423095185a973f44d96e0d7da1c2c06a1d270a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0bc97c19cafac6362161c5f11796748c3f2a1700096c71d0facca9debf9cf995
MD5 0d6d667339b7945995f7e6766cb7abb8
BLAKE2b-256 2100493ff3f7196c079ce330d76cb78f24e8473fbcea8a509678b2dd3394a3c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0528c7a9c54162f1c9008b50f93c5af6166a2a6d3cbabca73151c5e5bea86bc0
MD5 c8e5489f164b89844b9aa6d4cea84653
BLAKE2b-256 5c2e69d183560ea3a5fc10ed9fe5129b1231f8dc4c360b14dd323947d06293cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0a3b27c4349f300ae31871eaee635b066eef527360aef0905792014b2f9c894c
MD5 30030a10fd3382e074c117000d522d02
BLAKE2b-256 74df347248fc5d6a94b3d06f448f9374efb3535f2111e48be29d06fb40c0c573

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21dde96ee021a5fddbee65455f073cf6d3a65b5030192b771cdc1ad23d20d706
MD5 5df0a546b27305c69390cfc65e6bf6e8
BLAKE2b-256 3093f8eb91c488b888e2314fcdea0ffd246120d98455ee64f2cda0d67c153e2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 12bc3f47a66dff62aac2dca542f86f7e02daa8a1b224876b0f6232f092f3d6bb
MD5 ef9afd581d7892b986a6617c49beb730
BLAKE2b-256 39a317e1f252a317373f3d6df13f435ab0f86e8004b3336ac4dfe44c6bec8a83

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8dbb0c830672bd63ce05dc174ad14e52ccaa33ffd7cd937cb6b7ac4a67595d07
MD5 2b5837f47b2deea78e137bbb73661f95
BLAKE2b-256 a36478d011847d40dfdab5ca2b540f4a97f959c89f3d3404edad34ee35c19cc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eed6a2dc31df2b2164128135e131e387706f288e1404f541d56c7828c52fe5b5
MD5 250dc364084f16a24b4708f320841d49
BLAKE2b-256 29416d43b439972ea5b334237696e21f5f046c08b1c927c687ff342aa35074cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b37c668e297b3d9365e66158863751c476b34ce014fba3e2ba54f1d58124d50
MD5 c1bf0d9dfeb4c43c0e1b430e325f1970
BLAKE2b-256 f90aa9e029d3fdf0b33cc2cdf046913aeb5fd059cce672ba52b511a636553cbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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

File details

Details for the file aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 22af69a2bb342bd39aab4ae1b1a50bf4342a2b6172e2c2f4f51105684bb43247
MD5 a2ad29a710be4b4fddff3bfd3a33a41c
BLAKE2b-256 457e46affc18406317ff6b6e6c99450a5ab47118050cfc9e578db637337c60d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerospike_py-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yaml on KimSoungRyoul/aerospike-py

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