Skip to main content

ryl

ryl is a fast YAML linter and formatter written in Rust. It checks YAML style, applies safe lint fixes, and formats files with configurable layout. It is usable today, but edge-case behaviour is still maturing.

Full documentation lives at https://ryl-docs.pages.dev/.

ryl targets YAML 1.2. See YAML version compatibility for how version directives and implicit types affect linting and formatting.

Coming from yamllint? See the migration guide.

Quick start

ryl enables no rules by default, so it needs a configuration or --enable that turns rules on. --enable ALL runs every rule for a one-off run, and --enable <RULES> runs just the named rules; for a project, drop a .ryl.toml at the root (see Configuration).

ryl check is the lint subcommand and the recommended form; ryl format is the formatter. Bare ryl <paths> still lints identically but is deprecated: it prints a warning to stderr (silenced by --no-warnings) and a later release will remove it, so prefer ryl check.

# Using uv (Python)
uvx ryl check --enable ALL .

# Omit selected rules and files without writing a config
uvx ryl check --enable ALL --disable line-length,truthy,document-start --exclude pnpm-lock.yaml .

# Using npx (Node.js)
npx @owenlamont/ryl check --enable ALL .

# Format in place, or check formatting in CI
uvx ryl format .
uvx ryl format --check .

For prek / pre-commit integration, see ryl-pre-commit.

Installation

uv tool install ryl                 # uv
npm install -g @owenlamont/ryl      # npm
pip install ryl                     # pip
cargo install ryl                   # cargo
pixi global install ryl             # conda-forge
winget install owenlamont.ryl       # winget (Windows)

Building from source (cargo install, or a pip sdist) needs Rust 1.99.0 or newer. The prebuilt wheels, npm, conda-forge and winget packages do not.

Status and scope

  • ryl format formats YAML in place without enabling lint rules. Its --check and --diff modes preview changes without writing; [format] in TOML controls the style. It also formats embedded YAML in Markdown with --markdown.
  • ryl includes 27 rules, including tags, merge-keys, block-scalar-chomping, and unicode-line-breaks. The rule reference and per-rule pages are at https://ryl-docs.pages.dev/rules/.
  • Auto-fixing (--fix) is supported for braces, brackets, colons, commas, comments, comments-indentation, document-end, document-start, empty-lines, hyphens, key-ordering, new-line-at-end-of-file, new-lines, quoted-strings, trailing-spaces, and truthy (case only, e.g. True to true). The set of rules that may apply fixes is configurable via the TOML lint.fixable/lint.unfixable keys.
  • --diff previews those safe fixes as a unified diff on stdout instead of writing them (modelled on ruff check --diff); it is mutually exclusive with --fix, works with stdin, and exits 1 iff some file would change.
  • TOML is the recommended configuration format and supports the lint.fixable/lint.unfixable fix policy, [lint.per-file-ignores], and rule options such as allow-double-quotes-for-escaping.
  • TOML assigns each file a source kind via the [files] table (yaml = [...], markdown = [...]). The legacy yaml-files key is YAML-only; in TOML use [files].yaml.
  • YAML embedded in Markdown (front matter and fenced yaml/yml blocks) can be linted by listing globs under [files].markdown; diagnostics map back to the Markdown file. It is off by default; --fix writes safe fixes back into the embedded blocks and --diff previews them at the host-file level. See https://ryl-docs.pages.dev/markdown/.
  • YAML configuration (.yamllint, .yamllint.yml, .yamllint.yaml, including the default, relaxed, and empty presets via extends) still works but is deprecated and warns; convert it with ryl --migrate-configs --migrate-write.
  • --list-files prints the files ryl would lint (after ignores and config discovery) and exits, without running rules. --no-warnings suppresses warning-level diagnostics in the output. --strict turns a warning-only run into exit code 2; TOML [lint] strict = true enables the same behavior for a project, and --no-strict overrides the config. --enable <RULES> runs exactly the listed rules (comma-separated IDs, or ALL) in place of the config's selection, and needs no config file. --disable <RULES> subtracts from the selected lint rules. --exclude <GLOBS> replaces config file exclusions; globs use the current directory and also exclude explicitly named files. Both new flags accept comma-separated values and may appear once per command.
  • ryl check and ryl format cache results by content and configuration. Use --no-cache to bypass the cache or --cache-dir PATH to place it elsewhere. See caching.
  • Pass - as the input to read YAML from stdin (ruff convention). Add --stdin-filename <PATH> so diagnostics, project-config discovery, and path-based filtering (yaml-files, per-file-ignores, per-rule ignore) use that filename. Without it, diagnostics are labelled <stdin>, config is anchored at the current working directory, and all path-based filtering is skipped so every enabled rule runs. - cannot be combined with other inputs; --fix cannot read from stdin, but --diff can.
  • ryl server runs ryl as a Language Server (LSP) over stdio, giving editors inline diagnostics, a source.fixAll.ryl code action, and formatting via ryl format. It complements Red Hat's yaml-language-server rather than replacing it, and is built in by default (a minimal binary without it builds with cargo install ryl --no-default-features). See https://ryl-docs.pages.dev/editor-integration/.
  • Run ryl --help for the authoritative CLI reference.

For installation walkthroughs, configuration presets, and per-rule documentation, see the docs site.

Performance

The chart times ryl against yamllint and three formatters on pinned real-world YAML: single files from 1 KiB to 9.4 MiB, and 1 to 1,000 files of under 16 KiB (98% of the 76,000 YAML files in the 40 pinned repos are under 16 KiB). Both axes are logarithmic.

Lint and max-common-work format: wall time and peak memory

The format panel uses max common work: every formatter configured for output as close as its options allow, plus the two rewrites all four offer, single quotes and folding long lines at 80 columns. It is the most work each tool can be asked to do in common. Median of 10 runs; peak RSS is the median of 3 more:

Input ryl yamlfmt dprint + pretty_yaml Prettier
1 KiB file 2.5 ms, 8.4 MiB 2.4 ms, 5.5 MiB 6.6 ms, 16 MiB 106 ms, 64 MiB
16 KiB file 3.4 ms, 8.6 MiB 3.8 ms, 6.5 MiB 9.6 ms, 16 MiB 147 ms, 79 MiB
0.9 MiB file 71 ms, 25 MiB 133 ms, 71 MiB 509 ms, 38 MiB 1.20 s, 368 MiB
9.4 MiB file 0.84 s, 191 MiB 1.22 s, 690 MiB 4.83 s, 240 MiB 9.75 s, 1.8 GiB
1,000 files 28 ms, 16 MiB 236 ms, 18 MiB 127 ms, 23 MiB 3.52 s, 246 MiB
Lint, extends: default 1 KiB 9.4 MiB 1,000 files
ryl 2.3 ms 0.62 s 24 ms
yamllint 70 ms 29.8 s 5.19 s

ryl formats faster than the other three at every size and file count, except a single 1 KiB file, where it ties yamlfmt (within 1%, mostly process startup). yamlfmt uses less memory up to 16 KiB (5.5–6.5 MiB against ryl's 8.4–8.6 MiB). The same holds under the other two profiles, where a lone 1 KiB file is up to 5% slower than yamlfmt.

Profiles and what they cannot equalise:

  • Max common work (charted): aligned configs plus single quotes and folding at 80 columns; 91–96% identical lines, as each tool folds differently.
  • Aligned configs: each formatter set up to produce output as close to the others' as its options allow. ryl quote-style = "double", max-blank-lines = 1, comment-spacing = 1, comment-starting-space = "preserve", brace-spacing = true; yamlfmt retain_line_breaks_single, double quotes, pad_line_comments: 1, trim_trailing_whitespace; dprint and Prettier defaults. Pairwise identical lines are 94–98%. The rest: ryl's double quote style also removes quotes no value needs, yamlfmt drops ---, dprint keeps inline comment alignment, and dprint and Prettier wrap long strings at 80 columns.
  • Defaults: each tool with no configuration, so each does different work.
  • Lint: yamllint reads extends: default and ryl reads the TOML that ryl --migrate-configs writes from the same file. On the benchmark inputs they share 43,569 diagnostics; yamllint alone reports 36 (20 braces inside Jinja {{ }}, 10 trailing-spaces inside block scalars, 6 comments, comments-indentation and document-start) and ryl alone 2 (document-start).

Every run gets a fresh copy of its inputs and an empty cache directory, with ryl's and Prettier's caches off and dprint's incremental mode off; dprint keeps its compiled plugin, an install artifact. Tools alternate order run to run. yamlfmt is the native release binary, not a launcher; ryl, dprint and yamlfmt may use several threads, Prettier and yamllint one. Inputs are files every tool accepts under every profile, which excludes Helm templates and other non-YAML. Each size point is a different file, so content varies along that axis.

Tool Version
ryl 0.26.1
yamllint 1.38.0
yamlfmt 0.21.0
Prettier 3.9.10
dprint + pretty_yaml 0.63.0 + 0.6.0

The benchmark script reruns everything and draws the chart; --tool-versions latest uses the newest release of each tool instead of the pins in scripts/benchmark_tool_versions.toml, and records the versions used.

Acknowledgements

This project exists thanks to the tooling and ecosystems around YAML linting and developer automation, especially:

  • yamllint - for giving me the shoulders to stand on and the source of many of the automated tests that ryl uses now to check for behaviour parity. Copying the behaviour of an existing tool is infinitely easier than building one from scratch - there'd be no ryl without yamllint.
  • ruff - for showing the power of Rust tooling for Python development and inspiring the config and API for ryl.
  • rumdl - for giving me another template to follow for Rust tooling.
  • saphyr - ryl's vendored YAML DOM is derived from saphyr, and saphyr's developers were very patient in showing some of the nuance and complexity of parsing YAML which I was embarrassingly ignorant of when starting ryl.
  • granit-parser - a saphyr-parser fork with comment and style metadata; ryl's own parser, ryl-yaml-parser, is forked from granit-parser 2.0.0.
  • esbuild and biome - for providing the "binary wrapper" blueprint for distributing high-performance native tools via NPM.

Metadata

Release files for ryl 0.26.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ryl 0.26.1
File Size Uploaded Provenance
ryl-0.26.1.tar.gz 845.9 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for ryl 0.26.1
File
ryl-0.26.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
ryl-0.26.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ryl-0.26.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
ryl-0.26.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
ryl-0.26.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
ryl-0.26.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl Python 3 none Linux glibc 2.17+ IBM System/390x Details
ryl-0.26.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl Python 3 none Linux glibc 2.17+ PowerPC 64-le Details
ryl-0.26.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl Python 3 none Linux glibc 2.17+ x86-32 Details
ryl-0.26.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl Python 3 none Linux glibc 2.17+ ARMv7l Details
ryl-0.26.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ryl-0.26.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 45.1 MB

Release files / ryl-0.26.1.tar.gz

Download URL ryl-0.26.1.tar.gz
Size 845.9 kB
Tags Source
SHA-256 checksum
How to use checksums
21bbf3deb365e7c304c44edf531ae6617f133e36d4c77fb1b3d2a66ef0e2c6a8
BLAKE2b-256 checksum
How to use checksums
15e47477937dbd62df444e9287ff8621a57b57b3a8211e3a41bdf26be7c3a305
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-win_arm64.whl

Download URL ryl-0.26.1-py3-none-win_arm64.whl
Size 3.7 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
3055298812f11db8d658d9ececfff2ffc60a0ed852dafb8670a2b40f9a2281a8
BLAKE2b-256 checksum
How to use checksums
042900ab9d17761e774cb501837b721fe8974e28e7772aa9328a27868ee7dbb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-win_amd64.whl

Download URL ryl-0.26.1-py3-none-win_amd64.whl
Size 4.0 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
1b3c4d3919f14ee2d908e9fade23a54317e9bec24a8c29b614bd6ec70416b0ae
BLAKE2b-256 checksum
How to use checksums
95862b5ef28a6f74dba742d1b10384d119b2d8dfb515610963df181bd35374c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-musllinux_1_2_x86_64.whl

Download URL ryl-0.26.1-py3-none-musllinux_1_2_x86_64.whl
Size 4.2 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
1475c502fe1144721b91f85a441de164b2cd74530048d26dceb0fc9efbc58136
BLAKE2b-256 checksum
How to use checksums
968876687fa804c3b638cb9616992940f9c9b9ae144b9d411195c8306ebce7a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-musllinux_1_2_aarch64.whl

Download URL ryl-0.26.1-py3-none-musllinux_1_2_aarch64.whl
Size 3.9 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
1e671078a3fe562ee3e63d06bb031317391ebc395b4c509130e5db1c067cc6a7
BLAKE2b-256 checksum
How to use checksums
7a82ef01509d9b7ac196b19a55df982486e5f2304e239700f6adc560c1b57b18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9db597c7392563128d9bafb79f12346198d880166c57c6a316b672c0fcad5722
BLAKE2b-256 checksum
How to use checksums
7e0ac57e4cfd5c8d5520aef0769a5d3e898c011f82a70f3b6255e30be49f39b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 4.3 MB
Tags Linux glibc 2.17+ IBM System/390x Python 3
SHA-256 checksum
How to use checksums
265d57f38082c88a91a8daf12779ffd21077684ee030e9a6dc3dfe5748748c05
BLAKE2b-256 checksum
How to use checksums
6b7f824dfaea5959b5ef36dfdc8fe81fa6e02c5c6209cc75ad202262ec8dac47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 4.3 MB
Tags Linux glibc 2.17+ PowerPC 64-le Python 3
SHA-256 checksum
How to use checksums
138cc03692ba59120ba95f8d1ed5cbbafdf122bfa1d8edb47cd05e4854433938
BLAKE2b-256 checksum
How to use checksums
0b119318041235b1d2ae586534f75dbcccfc973df37c3da6d5c8296074cc86df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Size 4.1 MB
Tags Linux glibc 2.17+ x86-32 Python 3
SHA-256 checksum
How to use checksums
ebd544f6ec10d4912d7624103dc7c744c4961599a4292e3841c8694652f55ad9
BLAKE2b-256 checksum
How to use checksums
2f50b22a80ae882b28765533aad62e73e867d9d1524bb829516d33b1ac8910e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 4.0 MB
Tags Linux glibc 2.17+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
e2ea1c002de5b7e929365a9129af90b97cacb834b74ba31e17e8b38afc4c98b7
BLAKE2b-256 checksum
How to use checksums
c743e67d62ddc1edf24187adaada695211bfc5a318d29f8714938b13583a7cf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ryl-0.26.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.9 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
96a78c23bbb09031c139527d1484eed9fbcfde876010511d61b3bbed198e5037
BLAKE2b-256 checksum
How to use checksums
671ec9ff24bde2976af4ebb0232fa45fcf94990437c76a8c87c39453f8cdb27b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / ryl-0.26.1-py3-none-macosx_11_0_arm64.whl

Download URL ryl-0.26.1-py3-none-macosx_11_0_arm64.whl
Size 3.7 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
285adb6168334d430e455747f030147b4d25ddbcfa7eedc4c2bd85ba08196d8e
BLAKE2b-256 checksum
How to use checksums
3a34fd8c477e3f04b5f2e9c7306c15a59cdee7983731e49274bb1618769ee1f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for ryl 0.26.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 12 files in this release have been uploaded with provenance metadata.

Select from 12 files

Attestation for ryl-0.26.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.26.1 This release

12 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page