Skip to main content

Python bindings for mp4-rust

Project description

mp4-py

PyPI image License Actions status

About Shiguredo's open source software

We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.

Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use.

時雨堂のオープンソースソフトウェアについて

利用前に https://github.com/shiguredo/oss をお読みください。

mp4-py について

mp4-rust の Python バインディングです。 MP4 コンテナフォーマットの読み書きをサポートしています。

対応プラットフォーム

  • macOS 15 arm64
  • macOS 14 arm64
  • Ubuntu 24.04 x86_64
  • Ubuntu 24.04 arm64
  • Ubuntu 22.04 x86_64
  • Ubuntu 22.04 arm64

対応予定プラットフォーム

  • Windows 11 x86_64

対応 Python

  • 3.14
  • 3.13
  • 3.12

インストール

uv add mp4-py

使い方(基本 API)

  • 提供: Mp4FileDemuxer, Mp4FileMuxer
  • ビデオ/オーディオトラックの読み書きをサポート
  • VP8/VP9/AV1、H.264/H.265、Opus/AAC コーデック対応

MP4 ファイルの読み込み

import io
from mp4 import Mp4FileDemuxer

# ファイルパスから demuxer を作成
with Mp4FileDemuxer("input.mp4") as demuxer:
    # サンプルを走査して処理
    for sample in demuxer:
        print(f"Sample: {sample.timestamp_seconds}s, keyframe={sample.keyframe}")
        print(f"Data size: {len(sample.data)} bytes")

# バイナリストリームから demuxer を作成
with open("input.mp4", "rb") as fp:
    demuxer = Mp4FileDemuxer(fp)
    for sample in demuxer:
        # サンプルを処理...
        pass

MP4 ファイルの作成

import io
from mp4 import (
    Mp4FileMuxer,
    Mp4MuxSample,
    Mp4SampleEntryVp08,
)


# ファイルにマルチプレックス
with Mp4FileMuxer("output.mp4") as muxer:
    # VP8 ビデオサンプルエントリーを作成
    video_entry = Mp4SampleEntryVp08(
        width=1920,
        height=1080,
    )

    # フレームを追加
    for i in range(30):
        is_keyframe = (i % 10) == 0  # 10フレームごとにキーフレーム

        # ビデオデータ(実際のエンコード済みデータに置き換えてください)
        video_data = b'\x00' * 1000

        # サンプルを作成して追加
        sample = Mp4MuxSample(
            track_kind="video",
            sample_entry=video_entry,
            keyframe=is_keyframe,
            timescale=30,
            duration=1,
            data=video_data,
        )
        muxer.append_sample(sample)

    # finalize() を呼んでファイルを完成させる(自動的に呼ばれるが明示的に呼ぶこともできます)

# バイナリストリームにマルチプレックス
with open("output.mp4", "wb") as fp:
    with Mp4FileMuxer(fp) as muxer:
        # マルチプレックス処理...
        pass

トラック情報の取得

from mp4 import Mp4FileDemuxer

with Mp4FileDemuxer("input.mp4") as demuxer:
    for track in demuxer.tracks:
        print(f"Track ID: {track.track_id}")
        print(f"Kind: {track.kind}")  # 'video' または 'audio'
        print(f"Duration: {track.duration_seconds:.2f}s")

[!WARNING]

  • 現在は基本的な読み書き機能をサポートしています
  • マルチプレックス時は最初のサンプルで sample_entry を必須で指定してください
  • 同じトラック内で同じコーデック設定が続く場合、sample_entryNone を指定できます

サンプル

  • examples/demux.py: MP4 ファイルをデマルチプレックスしてトラックとサンプル情報を表示
  • examples/remux.py: MP4 ファイルをリマルチプレックス(読み込んで別ファイルに書き込む)

実行例:

uv run python examples/demux.py input.mp4
uv run python examples/remux.py input.mp4 output.mp4

ビルド

uv build --wheel

mp4-rust ライセンス

Apache License 2.0

Copyright 2024-2025, Takeru Ohta (Original Author)
Copyright 2024-2025, Shiguredo Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

mp4-py ライセンス

Apache License 2.0

Copyright 2025-2025, Takeru Ohta (Original Author)
Copyright 2025-2025, Shiguredo Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Project details


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.

mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ ARM64

mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ ARM64

mp4_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

mp4_py-2025.1.0.dev1-cp314-cp314-macosx_14_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ ARM64

mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ ARM64

mp4_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

mp4_py-2025.1.0.dev1-cp313-cp313-macosx_14_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ ARM64

mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_aarch64.whl (340.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ ARM64

mp4_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

mp4_py-2025.1.0.dev1-cp312-cp312-macosx_14_0_arm64.whl (310.3 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

Details for the file mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 9378dc6e6475c07aa1c664abc31e50e434ac837a5415870e027f4f353bafb584
MD5 4bf8b62bd38675a70b541d96cfd86704
BLAKE2b-256 574aabebfc75e5b18300e59fbc975108cc3828491d65006da0b6bd0b4b237ac4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 6b9bee5fa04bf5e598294f1ef34f73ff4a721b42e5bafbe345d115c45b395577
MD5 5275c65c7a885d164019153bf9b436fa
BLAKE2b-256 171dc037b152a20a5b3df5a33d3f69fdf9296617f4ee85ee3a0985039d0e7d73

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_39_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d2cf303e1b4fa3fe8af126ace9d2302417dc41846869e8938ef11a552fc094fc
MD5 9c7833231ec860f8ee5a104cf79e1c21
BLAKE2b-256 20eff4cd94122400fb8af84f74650c7eb74a07f11f8f6fdff4ea0f41f3a384ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 b76ac294a05000de9ecaf37be6bafa47de490fa4fab737923bca227e1673c226
MD5 484dd14f7f6fa8ec40b9b45404082372
BLAKE2b-256 8a2422aff0858127bd1d3a4921d77423282b04ad617d226462dd650cd04048e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-manylinux_2_35_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ebf666bf24ff32e808d0075f41c2d9580621d3872d77768f3a5c47957661a216
MD5 a0c89088c017e471bb64e6d7898778d2
BLAKE2b-256 4ebc065af89122b587aab2f226662edafc90c22c4c5d918de3636e2a607e4ad0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1018c9e3caf379c807457e8e66c719c9dbf6c018b9742525eb287e22241b9fbd
MD5 adcd8c0930ee53808fe357f1ebb14d21
BLAKE2b-256 7e57c3683f5fecf2137157cf87505769088db8000921cdb2947c316b2a9c990f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 49ffe42baa7e32fc34514a85e73f9e03064082b21b4d8f4be985e7b681651ab2
MD5 dc41ee5f5a525a846eccca7809cc011f
BLAKE2b-256 835fb1cad635cfca0fd17189ce88cc1df5934477cda9c65c61c43287c9e9f5d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 e775737557d9bcf337a9e54093ad1c801e42c5641d1bf1e1e5d7d261ae40b9ff
MD5 e2ce8836d06b226323f30bb29348dd17
BLAKE2b-256 0721d6caa38335e57847d39a905831ee58ba3ae41ec232da1f87d5c915972627

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_39_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e3a67ee5908e255bf384f5497440d8b477e72b7bc2806a8dd402db1c128db2f9
MD5 4ac3d26943109e450030fc98dc877046
BLAKE2b-256 de3fd453a0ecea9d9139c4751d04c986feee960d15c4857ee521df05e75b4fe2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 4c8b46fca9e4ec42aac69816a3834283cb5cbce1d5d77351d78d8aa2f9aff0e4
MD5 469c027bfd24bfd4b2108dcd9da86aaf
BLAKE2b-256 d7d92362f4bc70a6606cf4d15eb44af9eba816dd5137b94ec7c356c35ac19f11

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-manylinux_2_35_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d3acce7fd4c7d181ff34c71cda4cad9a97e721094ab5551747f5f83880c05a4d
MD5 679b01d46082e1458855c966c7caf24b
BLAKE2b-256 12538dfa00993f1839763407dec3abf3a7a1859c9444fd207eecc857366658fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b59b8ccd872e088097b72be2f4cef7056e5bf53c8e4a0505e137688c5008c0f2
MD5 9f123d45b729b1de98ad67112ec3260c
BLAKE2b-256 763d764067ae2ebe25d547821bebca57855303f2e0ea83f16aecf5c121570cca

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ad20deaa11f4c62f857d0de2690e72a505487a8bbe5aa19b956921574fae060a
MD5 bbc9972f01638dcef03ba0af5074f7d7
BLAKE2b-256 c2178f701da56fbaf047b95393fa1a6b568008e6a70e19bc68ececa64e48d5da

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 9e916aa264ea70571836ec63467dd6ade57f641e90f7315b359b52e8b0cf7beb
MD5 a75af231e75dd9bf0f27438259ac09e2
BLAKE2b-256 080f01611083ce5a1f013d3e4365abffca4ba42bb6c58ecdf30f713b0750467c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_39_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 83cbda0edcf4ba783d7c5e81902316276f1e90ba888b8a21d6208f8ef7b4b63a
MD5 f2e418d05ea4082ee5ca86a1003b6423
BLAKE2b-256 dd389d86e271e8c3f957ee98aab7885373062459909c1d251941ca3587d49b0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_x86_64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 833389e50f522e9276b2fec835b33379eb8117c605cb5f97e9657828bfea3ce5
MD5 c9b0ff6730d21707a75bfca2662fac40
BLAKE2b-256 0e4e186317a2b0b5f1236c3dccb0d1c2ecce94229e2cd45dd3e9981ac62932b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-manylinux_2_35_aarch64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 44bfbc5d8c4acc26d0dccaf2d780906651d44fbe8cbc3eb29308b107e2feed38
MD5 9910a4d158d818878c2f82adba8820a0
BLAKE2b-256 a5ba53dd764e5bff3b3411b4795eeb12c2017092a7e113f7fbfcad65128dfda5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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 mp4_py-2025.1.0.dev1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for mp4_py-2025.1.0.dev1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 df8895435fc91354962547c3e2c27114edc448cf9087b25d39ee0b9900b396be
MD5 762c09730cf8233115153e908f8628c6
BLAKE2b-256 1eec719a65040ce14515be377dc876d5837e6e17dfb37789c057a40a6ee0728a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mp4_py-2025.1.0.dev1-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: wheel.yml on shiguredo/mp4-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