Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

msgspec-toon

TOON (Token-Oriented Object Notation) is a line-oriented text format that reduces repeated keys in uniform JSON-shaped data.

msgspec is a high-performance serialization and validation library whose typed Struct objects are a faster, lighter alternative to Pydantic models.

msgspec-toon is a native TOON 4.1 codec for Python. It decodes TOON text directly into msgspec.Struct objects. It does not build an intermediate dict and list tree.

Use it when tabular data must fit in a language model context window, but the application still needs typed Python objects and fast in-process conversion.

This is a beta release. The project passes the pinned TOON 4.1.1 corpus, but it does not yet support every type that msgspec.json supports.

Install

Install the public beta from PyPI:

uv add msgspec-toon

The package requires Python 3.13 or newer. Its only runtime dependency is the exact pin msgspec==0.21.1. Benchmark codecs and tokenizers are optional development dependencies. They are not installed with the library.

Decode TOON into a Struct

import msgspec
import msgspec_toon as toon


class Metadata(msgspec.Struct, frozen=True):
    alias: str
    region: str


class Worker(msgspec.Struct, frozen=True):
    pid: int
    provider: str
    metadata: Metadata


class Document(msgspec.Struct, frozen=True):
    workers: list[Worker]


wire = b"""workers[2]{pid,provider,metadata{alias,region}}:
  9007199254740993,claude,worker-a,west
  80916,claude,worker-b,east"""

decoder = toon.Decoder(Document)
document = decoder.decode(wire)

assert isinstance(document, Document)
assert document.workers[0].pid == 9007199254740993
assert toon.encode(document) == wire

The parser uses the target type while it reads the input. It constructs the final Struct objects directly. The G2 allocation proof records zero temporary built-in dictionaries and lists for this path.

Read and write TOON files

The codec accepts bytes, bytearray, memoryview, or str. Encoding returns bytes, so normal Python file APIs work without an adapter.

from pathlib import Path

import msgspec_toon as toon


source = Path("workers.toon")
target = Path("workers-copy.toon")

decoder = toon.Decoder(Document)
encoder = toon.Encoder()

value = decoder.decode(source.read_bytes())
target.write_bytes(encoder.encode(value))

The conversion itself does not open files, sockets, or subprocesses. Your application controls all I/O.

Use untyped values

Omit type when you need normal Python dictionaries and lists:

value = toon.decode(b"name: ada\nactive: true")
wire = toon.encode(value)

The public surface follows msgspec.json where support exists:

  • encode and decode
  • reusable Encoder and Decoder
  • enc_hook and dec_hook
  • strict decoding by default
  • msgspec-compatible encode, decode, and validation errors

TOON wire options are explicit:

toon.encode(value, delimiter="\t", indent=1)
toon.decode(wire, indent_size=1)

Why not wrap another TOON codec?

A wrapper must first convert a Struct into built-in containers. Typed decode must parse a built-in tree and then call msgspec.convert. Those extra trees can cost more than the codec work.

Project Format target Typed msgspec path Integration model
msgspec-toon TOON 4.1.1 corpus Direct Struct encode and decode Native, in process
toon-rust TOON 3.0 No Python msgspec path Rust library and CLI
toons 0.7.0 Earlier TOON grammar Built-in tree Python Rust extension
python-toon 0.1.3 Earlier TOON grammar to_builtins / convert Pure Python and CLI

TOON 4 nested field groups are important. They let a uniform nested record use one tabular header:

workers[2]{pid,provider,metadata{alias,region}}:
  20324,claude,worker-a,west
  80916,claude,worker-b,east

Older encoders can fall back to a larger entry form for the same data.

Tokens and speed

Codec elapsed times

Absolute token counts

The generated benchmark report publishes both axes:

  • Direct encode, decode, and total time for each measured codec.
  • Absolute token counts, including compact JSON, under tiktoken o200k_base.

The report crosses four payload shapes with four record counts. Canonical TOON uses more tokens than compact JSON for the measured irregular shapes.

All timing rows come from one session and one release build. The estimator is the mean across ten independent worker processes. It never reports the minimum. The raw evidence is in the conformance/report.json file.

Conformance and safety

  • All 538 pinned TOON 4.1.1 fixtures pass in both directions.
  • Typed decode creates no intermediate built-in container tree.
  • Integers keep Python precision and do not route through float.
  • Errors contain coordinates and static messages, never input payload text.
  • Malformed input must return an error. It must not panic or terminate Python.
  • Canonical output is byte-locked by tests.

The generated support matrix in the conformance/report.json file lists supported, rejected, and not-yet-supported msgspec features. Unsupported behavior fails clearly. It does not silently return a different value.

Optional msgspec Struct fast path

The stock package reads Struct fields through msgspec's public Python attributes. This is the compatible path for msgspec==0.21.1.

The repository also contains a versioned Struct-access capsule proposal for msgspec. You can build the same codec against that patch in an isolated environment:

make fastpath-build
make fastpath-check
make fastpath-bench
.venv-fastpath/bin/python

This workflow fetches a hash-pinned msgspec commit, applies the preserved patch, and builds both release wheels. It does not modify the normal .venv. The build fails unless the capsule path is active. Published wheels do not depend on the unreleased API.

Develop and reproduce

Use uv for all Python environment work:

uv sync --locked                         # library and developer tools
make build                              # release extension in .venv
make check                              # Rust and Python checks
uv run python conformance/run.py        # pinned 538-fixture corpus
make g2                                 # allocation proof in a separate build

uv sync --group bench --locked           # opt in to benchmark packages
make bench                              # same-run codec and typed ladders
make public-report                      # raw JSON, R charts, and BENCHMARKS.md

make public-report uses the host Rscript, ggplot2, jsonlite, and scales. It does not install R or add R packages to the Python environment.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msgspec_toon-0.1.0b2.tar.gz (57.5 kB view details)

Uploaded Source

Built Distributions

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

msgspec_toon-0.1.0b2-cp314-cp314t-win_arm64.whl (252.1 kB view details)

Uploaded CPython 3.14tWindows ARM64

msgspec_toon-0.1.0b2-cp314-cp314t-win_amd64.whl (261.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (338.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

msgspec_toon-0.1.0b2-cp314-cp314t-macosx_11_0_arm64.whl (320.1 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

msgspec_toon-0.1.0b2-cp314-cp314t-macosx_10_12_x86_64.whl (334.7 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

msgspec_toon-0.1.0b2-cp313-abi3-win_arm64.whl (252.4 kB view details)

Uploaded CPython 3.13+Windows ARM64

msgspec_toon-0.1.0b2-cp313-abi3-win_amd64.whl (261.8 kB view details)

Uploaded CPython 3.13+Windows x86-64

msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354.4 kB view details)

Uploaded CPython 3.13+manylinux: glibc 2.17+ x86-64

msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (338.6 kB view details)

Uploaded CPython 3.13+manylinux: glibc 2.17+ ARM64

msgspec_toon-0.1.0b2-cp313-abi3-macosx_11_0_arm64.whl (320.7 kB view details)

Uploaded CPython 3.13+macOS 11.0+ ARM64

msgspec_toon-0.1.0b2-cp313-abi3-macosx_10_12_x86_64.whl (334.9 kB view details)

Uploaded CPython 3.13+macOS 10.12+ x86-64

File details

Details for the file msgspec_toon-0.1.0b2.tar.gz.

File metadata

  • Download URL: msgspec_toon-0.1.0b2.tar.gz
  • Upload date:
  • Size: 57.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2.tar.gz
Algorithm Hash digest
SHA256 8b42abf32b71ac2ad23b90ea4e6246371d137254aed27fa016be415442a70908
MD5 bec7d2b7017f8150d592f4c02d0c431e
BLAKE2b-256 2760728973f72430ee5edf64fba3c2462b4d1099ddf8d698e832f6696f58d633

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 252.1 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 01b3615c5e8994917dcc1d55aea3b71515e5296a592a43f16e62a64d109645c9
MD5 67c5a44e7c5ebfb73dccf232d2579f55
BLAKE2b-256 39efb6d5621464f619cf46fe2a70f54bb6bacda78ee166b92667f7fa4c46a72b

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 261.7 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ee62b07cb2a0c998868047df93bbf23bb2116edb05b561360ea65d7a68283bc0
MD5 2a81434e6ae269dc620179b60fdd9a63
BLAKE2b-256 01a27b391689566e5368528a2e8c5e70dbad1132dab6a7bd107ffb1ee422665c

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 354.6 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b411f5ba3590217eb4069734f9753a12620c7b1a2bf34eaec867933eb693764d
MD5 fbedefec3515028e329298c38918d858
BLAKE2b-256 e7983c1f6ad577da7f2df04a2b4ba53d888cdb0a1f45ec633a513b1d2fef4b1e

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 338.1 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 106f9a4a8fd9750c180dec7163a4dcf4032cd1c82fa0ba54926ad3d30c6423bb
MD5 831aa824caca10ca529168c7a4c64f68
BLAKE2b-256 22108ef9c815446db0df39b495d4727f4697568776bc7f6c7c6fd5f179a835d9

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 320.1 kB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be1fc2787b395dc6db37d020a7bae29702e9500f662bf7b5e4af310dfcb51f35
MD5 f713f7a1ecdbe41810589e4aa0abb743
BLAKE2b-256 997d0f3801b9c059d5acafb0204d06b7dafe584c10b07fdfe258f356d41b0988

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp314-cp314t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 334.7 kB
  • Tags: CPython 3.14t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 98027ea29def707c57604de2b1b391342090583fa12e8cbbb5fe7ff078f0dbcb
MD5 3285bcf7dfc7b8623c4a6ea9546e742b
BLAKE2b-256 04fe3836d203ba1f0e7f5cbc6f56dccc4d26b34f6cb9f514a5aff1fd980f59e2

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-win_arm64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-win_arm64.whl
  • Upload date:
  • Size: 252.4 kB
  • Tags: CPython 3.13+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 d73d4e3c5fd42e0c3aa6b303a738f50870b84a302a23a8ef8d74e0432b723bda
MD5 99d05ca774a3bfee790649277582fcb7
BLAKE2b-256 955eb7df85df837667b4c9c8bcd12bc884a89a31c472967ff0101ff9ea9a6fac

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-win_amd64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-win_amd64.whl
  • Upload date:
  • Size: 261.8 kB
  • Tags: CPython 3.13+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f21047252272fc2958be850f782c6b0b0f3d4f801a11960ba654af9b28e8b212
MD5 d240b6c0dcbf0c7ff25a51839073ad55
BLAKE2b-256 c05a4d54145af5b5c5c37d7c545cf82034195d55165a06447fab58fc02387072

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 354.4 kB
  • Tags: CPython 3.13+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5bf9f9bd0252de02294ae8796bb1067d1338eb40e35410abe5c08efaa3295f68
MD5 6d1e8bdfab96df6388bad5fbe148b348
BLAKE2b-256 75eccd9e8b60bd1858b7cf68e717da008e5a21af71ada657ff93f5092659ed8a

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 338.6 kB
  • Tags: CPython 3.13+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 402865b27c34ab7da87eff591873bf6db9889d3116af844e7bb4d98a33dc3f19
MD5 701faf84793c6786256444c1d3ad5dc9
BLAKE2b-256 1eaf07ca51ab97261030aeef9252713212dffb42d622bb68d88d0023eb2f8342

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 320.7 kB
  • Tags: CPython 3.13+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cc7cbee0a3b933a5ff5bb19ee96166190aa701878e213eed0ec29ee021db9c4
MD5 0e682ac903b8f885c7cf3274340bd26f
BLAKE2b-256 8c9d17857b533f286dc4156ce4aff63545a2916fed0e2e45c63877340ac57279

See more details on using hashes here.

File details

Details for the file msgspec_toon-0.1.0b2-cp313-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: msgspec_toon-0.1.0b2-cp313-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 334.9 kB
  • Tags: CPython 3.13+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for msgspec_toon-0.1.0b2-cp313-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac1134b00d9f0ec880646b8a86cf8066bf661339725cf01e72e98e2fa146f5ef
MD5 62d899c3ef4e3eac6fd32098104ef24d
BLAKE2b-256 239c00dfc6898236b83abf5d60f21126afd09e461e2c7f40173470e530391cb9

See more details on using hashes here.

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