Skip to main content

Starlette-compatible URL route matcher as a native Python extension (~29× faster than Starlette's linear regex scan).

Project description

ffroute

Experimental — APIs may change.

A Starlette/FastAPI-compatible URL route matcher implemented as a native Python extension (Rust + PyO3). Replaces Starlette's linear-regex-scan with a min-index segment trie100–200× faster on real-world OpenAPI specs (Stripe, GitHub, Kubernetes), while preserving Starlette's exact first-registered-wins semantics, including its static-vs-param shadowing behaviour.

PyPI Python 3.10+ License: MIT

When to use this

ffroute helps when route matching is actually slow enough to notice:

  • Hundreds of routes — Starlette's linear regex scan shows up in flame graphs (the original 740-route measurement that motivated this package found routing was ~13 % of request time).
  • Lots of 404 traffic — bots, scanners, deprecated endpoints. The trie fails fast at the first non-matching segment; the "miss" speedup is even larger than the hit speedup (see Performance).
  • App startup matters — ffroute builds the routing table 50–200× faster than Starlette's regex compile (sub-millisecond vs 10–45 ms on the OpenAPI specs below). Useful for cold-start serverless and frequent restarts in CI.

Skip if you have fewer than ~50 routes (savings are real but small in absolute terms), or if you use custom starlette.convertors.Convertor subclasses — FFRouter still works correctly (Starlette's per-route check filters), but loses the trie fast-path for those segments.

Install

pip install ffroute               # core (zero Python deps)
pip install 'ffroute[starlette]'  # with FFRouter — the Starlette/FastAPI drop-in
# or
uv add ffroute

Pre-built wheels are published for CPython 3.10–3.14 on Linux (manylinux + musllinux, x86_64 + aarch64), macOS (x86_64 + arm64) and Windows (x86_64). For other platforms, pip install builds from sdist — needs a Rust toolchain (rustup default stable).

Usage

Drop-in for Starlette / FastAPI

from fastapi import FastAPI
from ffroute import speedup

app = FastAPI()

@app.get('/users/{user_id}')
def show_user(user_id: int) -> dict:
    return {'user_id': user_id}

# Swap the path-matching layer for ffroute. That's it — method dispatch,
# Mount, Host, redirect_slashes, /openapi.json, /docs all unchanged.
speedup(app)

speedup(app) rebinds app.router to a dynamically-built subclass that mixes FFRouter into whatever router class the app already uses (starlette.routing.Router or fastapi.routing.APIRouter). FFRouter's path-scan overrides win; everything else — including FastAPI's OpenAPI-schema cache hooks — stays intact. It's idempotent: a second call just re-indexes.

By default speedup recurses into Mount sub-apps and applies the same treatment to any Starlette/FastAPI app (or bare Router) it finds — so a heavily-routed sub-app behind Mount('/api', app=sub) gets the trie too, not just the top-level router. Mounts wrapping non-router ASGI apps (StaticFiles, raw callables) are left alone. Pass recursive=False to opt out:

speedup(app, recursive=False)  # only the top-level router

Equivalent manual form, if you're on plain Starlette (and don't need to preserve a custom router subclass):

from ffroute import FFRouter
app.router.__class__ = FFRouter
app.router._rebuild_index()

Advanced: low-level matcher

For a custom dispatch layer outside Starlette, use the raw trie matcher directly — no framework dependency, integers in / integers out:

import ffroute

router = ffroute.Router([
    '/users/me',                           # 0
    '/users/{user_id:int}',                # 1
    '/items/{item_id}',                    # 2
    '/static/{file:path}',                 # 3
])

router.match('/users/me')        # -> 0   (first-registered wins)
router.match('/users/42')        # -> 1
router.match('/items/abc')       # -> 2
router.match('/static/a/b.png')  # -> 3
router.match('/missing')         # -> None

API reference

symbol needs use case
ffroute.Router low-level Rust trie; returns the integer index of the matching pattern
ffroute.FFRouter starlette starlette.routing.Router subclass; drop-in replacement
ffroute.speedup(app) starlette one-liner: rebind an existing app's router class

Router methods:

method returns use case
match(path) int | None — best (lowest-index) match single-request dispatch
match_many(paths) list[int]-1 for no match batch matching
match_all(path) list[int] — every candidate, in trie-walk order candidate narrowing (then run the framework's own per-route check)

Compatibility

speedup(app) swaps only the path-matching scan. Everything else stays the framework's job — FFRouter is a starlette.routing.Router subclass that runs Starlette's per-route check on each candidate the trie surfaces.

Feature Status
FastAPI @app.get / @app.post / decorators
FastAPI APIRouter + include_router (prefix, tags, dependencies)
Starlette Route with methods=[...] (→ 405 on method mismatch)
Starlette Mount / sub-apps (always considered as candidates)
Nested Mount (Mount inside Mount inside Mount…)
Speedup propagates into Mount sub-apps and Mount(routes=[...]) ✅ via recursive=True (default); opt out with speedup(app, recursive=False)
Starlette Host routing
WebSocket routes
redirect_slashes (trailing-slash redirect)
FastAPI auto-generated /openapi.json, /docs, /redoc
Built-in path convertors (str, int, float, uuid, path) ✅ fast-path
Custom starlette.convertors.Convertor subclasses ⚠️ works through FFRouter (Starlette filters); loses the trie fast-path
app.router.add_route(...) after speedup() ✅ trie rebuilds; O(N), so register routes before speedup() when possible
Calling speedup(app) twice ✅ idempotent — just re-indexes

All cases above are covered by tests/test_ffrouter.py.

Supported segment kinds

ffroute mirrors Starlette's convertors.py:

segment regex note
static exact match HashMap fast path
{name} / {name:str} [^/]+ regex-free fast path
{name:int} [0-9]+ typed convertor
{name:float} [0-9]+(\.[0-9]+)? typed convertor
{name:uuid} [0-9a-f]{8}-[0-9a-f]{4}-… typed convertor
{name:path} .* consumes the remainder of the path
compound (e.g. {user}:disable, ({n:int})) anchored whole-segment regex mixed literal + param

Semantics: match returns the minimum registration index among all patterns that match. This is exactly Starlette's "first-registered wins" rule, including the FastAPI footgun where /x/{id}/ registered before /x/bulk/ makes GET /x/bulk/ match the param route with id="bulk". Drop-in routers from other ecosystems (httprouter, matchit, find-my-way) do not preserve this — they use static > param > catch-all priority, which is why they can't be used as a Starlette replacement without behaviour change.

Performance

Measured against three public OpenAPI specs (Stripe, GitHub REST v3 and Kubernetes). For every route a match probe (dynamic params filled with valid values) and a miss probe (dynamic section perturbed; verified against Starlette's own matcher so collisions don't pollute the workload) is generated; the full workload is looped to ≥ 20 k iterations, best-of-3:

spec routes ffroute hit starlette hit hit speedup ffroute miss starlette miss miss speedup
Stripe 414 95 ns 11 418 ns 120× 65 ns 22 956 ns 355×
GitHub 788 112 ns 23 501 ns 210× 42 ns 43 039 ns 1022×
Kubernetes 542 127 ns 15 496 ns 122× 80 ns 31 723 ns 398×

The miss speedup is even larger than the hit speedup because a trie fails fast at the first non-matching segment, while Starlette has to execute every compiled regex before concluding "no match". One-time build is 50–200× faster too (Stripe: 0.13 ms vs 8.3 ms; GitHub: 0.22 ms vs 22.5 ms).

Reproduce — or regenerate the table above — with benchmarks/openapi_bench.py:

uv sync --group benchmarks
uv run --no-sync python benchmarks/openapi_bench.py                 # print
uv run --no-sync python benchmarks/openapi_bench.py --update-readme # rewrite the table above

Why this is fast (vs other approaches)

On a synthetic 740-route table with 50 k weighted URLs (best-of-5, Python 3.14.0rc2), ffroute is measured against the design space of routing implementations — pure-Python tries, regex variants, batch vs single-call:

implementation build (ms) ns/req req/s vs Starlette
starlette.routing.Router (linear regex scan) 130 2971 0.34 M 1.0×
linear regex, no scope dict 59 953 1.05 M 3.1×
pure-Python segment trie 1.8 668 1.50 M 4.4×
ffroute (PyO3, batch) 0.7 115 8.7 M 26×
ffroute (PyO3, single-call) 0.5 101 9.9 M 29×

The single-call number is the realistic one — ASGI calls the matcher once per request, not in a batch. A pure-Python trie alone already wins 4.4×, so most of the gap isn't "Rust vs Python" — it's "trie vs linear scan". The Rust implementation is then ~7× on top of that. A trie also removes the O(N) factor: the linear scan climbs 745 → 2731 ns/req as N goes 100 → 3000, while ffroute stays ~98 ns regardless of N.

The 740-route numbers are lower than the OpenAPI numbers above because the synthetic corpus is dominated by short static prefixes (faster for both matchers); the real OpenAPI tables have deeper paths and more dynamic segments, which slow Starlette's per-route regex scan disproportionately.

Why a custom router (vs matchit / httprouter / find-my-way)?

A native radix router from another ecosystem can't be dropped into FastAPI without changing behaviour:

  • httprouter (Go) panics when a static segment and a param share a position (/x/bulk/ vs /x/{id}/) — the everyday FastAPI route model. It rejected 53 % of a 740-route table in our measurements.
  • matchit (axum) and find-my-way (Fastify) use static > param > catch-all priority, returning a different match than Starlette for the shadowing cases above.

ffroute implements a min-index segment trie precisely to reproduce Starlette's first-registered semantics byte-for-byte.

Conformance

tests/test_conformance.py is a differential test whose oracle is Starlette's real compile_path / Route.path_regex. Cases are lifted from starlette/tests/test_routing.py (typed convertors, /path-with-parentheses({param:int}), the intra-segment /{username}:disable, str-param shadowing), FastAPI's documented fixed-before-param priority, and trailing-slash edge cases, plus a synthetic 5 000-path fuzz over an algorithmically-generated route corpus.

tests/test_ffrouter.py covers the speedup / FFRouter integration — mount + APIRouter + include_router combinations, method dispatch (→ 405), nested Mounts, FastAPI's /openapi.json round-trip, and the lazy-import error message when Starlette isn't installed.

See examples/starlette_app.py and examples/fastapi_app.py for runnable apps that enable FFRouter in one line.

Development

uv sync --all-groups               # install dev deps incl. maturin
uv run maturin develop --release   # build the Rust extension into the venv
uv run pytest                      # run the test suite

See the Makefile for additional targets (make help).

License

MIT — see 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 Distribution

ffroute-0.1.2.tar.gz (59.8 kB view details)

Uploaded Source

Built Distributions

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

ffroute-0.1.2-cp314-cp314-win_amd64.whl (600.4 kB view details)

Uploaded CPython 3.14Windows x86-64

ffroute-0.1.2-cp314-cp314-musllinux_1_2_x86_64.whl (942.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ffroute-0.1.2-cp314-cp314-musllinux_1_2_aarch64.whl (861.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

ffroute-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (723.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

ffroute-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (684.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

ffroute-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (621.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ffroute-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl (680.2 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

ffroute-0.1.2-cp313-cp313-win_amd64.whl (600.8 kB view details)

Uploaded CPython 3.13Windows x86-64

ffroute-0.1.2-cp313-cp313-musllinux_1_2_x86_64.whl (943.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ffroute-0.1.2-cp313-cp313-musllinux_1_2_aarch64.whl (861.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

ffroute-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (723.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ffroute-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (684.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ffroute-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ffroute-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl (680.4 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

ffroute-0.1.2-cp312-cp312-win_amd64.whl (600.9 kB view details)

Uploaded CPython 3.12Windows x86-64

ffroute-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl (943.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ffroute-0.1.2-cp312-cp312-musllinux_1_2_aarch64.whl (861.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

ffroute-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (723.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ffroute-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (684.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ffroute-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (621.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ffroute-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl (680.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

ffroute-0.1.2-cp311-cp311-win_amd64.whl (601.5 kB view details)

Uploaded CPython 3.11Windows x86-64

ffroute-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl (944.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ffroute-0.1.2-cp311-cp311-musllinux_1_2_aarch64.whl (862.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

ffroute-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ffroute-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (685.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ffroute-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ffroute-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl (680.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

ffroute-0.1.2-cp310-cp310-win_amd64.whl (601.7 kB view details)

Uploaded CPython 3.10Windows x86-64

ffroute-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl (944.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ffroute-0.1.2-cp310-cp310-musllinux_1_2_aarch64.whl (863.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

ffroute-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ffroute-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (685.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ffroute-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (621.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ffroute-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl (680.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file ffroute-0.1.2.tar.gz.

File metadata

  • Download URL: ffroute-0.1.2.tar.gz
  • Upload date:
  • Size: 59.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2.tar.gz
Algorithm Hash digest
SHA256 16e610f907da9d80f45e901bfad5433daa7f42cc87fc2b978effdc1ce4c7a4ae
MD5 6ef049119f13c17456fc8161d4c18f5e
BLAKE2b-256 aa3816323e18e7683c3d3775d8b16ce41f16f893c2841c560cfafc725f5c7a5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2.tar.gz:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ffroute-0.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 600.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 43692ad3e727b8aae137d1cda44d1fac4360b879d27d4844f995a11771f62552
MD5 17115acfd77a3686ebb186007ef73b93
BLAKE2b-256 1073d73f87ad3e191a2770e919791a744d93a766cca7a41f2f40e6866789cb1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-win_amd64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed373520154f9427ee12f3a5433f00d03e043502f79523d91921678e7c0d2021
MD5 591cc20d95127fbc9507f813bf408ddb
BLAKE2b-256 9a42611610494d15f827d4213f6f56426d3aa8afff2866fcd5f64a81427a5238

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 11e58a5c21c1bbe16b8cdeaf81285e07627563db5ea1140cf7730e6b6d3cf137
MD5 19d88ebde02279dc8f691a34a93e43b7
BLAKE2b-256 2b6fa25e70d9d22b967cae0a2fbacf7c4d011df5e9758a413026446389741395

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 989019089f5f61e64dc4fbceeb27db37393f8acc94f79ddf0cd72f55100ab0e0
MD5 ce31b6cc35429d1a18396177d33bfef4
BLAKE2b-256 e0cc20f0ffeaedcd65c618e105bb0d0ffee2a9b0af7b62ef3edebfc6eaf1a8dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 05da1e61cf42c194f66b64a27781fbeaaabbd9d25ab0c8e93a4386de710697ff
MD5 cb7397a8346f289f1c47d9549b5ee391
BLAKE2b-256 84a6a01ca7968d18dafb5c566101b48dbdd5131d54ea390d5add7b31d17b0e99

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1729f725b0a2c34d98ed4e50d9df6ead7086a68c43ca2e79b298bc669ce1f320
MD5 65b3493ee2b51aefe3dfd315793b22e6
BLAKE2b-256 f2c5d0d10e7d0911b983603a4df5cff5b7f3c4e22fffbf087257b0b4ee6cf309

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c49f140a9c35a06a6ab6fc08e1fed91d2139981c5bb9bf27af28c98bceb39e4c
MD5 d55d89fe9c881345c5e81f65e0b173a6
BLAKE2b-256 3f80e5071e74aff1c511e1c3b8c4bba8e1cdc276f5e00b45cf62848a9984fa24

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ffroute-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 600.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 eef7c202028fbe12ed62dd9627292a9d6824232fc7807265d88b5173a3c5d7ff
MD5 5c3508092019ed9c64cb20b5f8896cf8
BLAKE2b-256 afb1ddb3c075d6826b633a274def3c62589acf2b01fb5a804808cd25c86ae507

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-win_amd64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d8f87f16d06bfe4f10b4c40ec2e930e394671ef0bac48d070127f157cbbd7a0f
MD5 315786f824c00615626fb4b2dec56684
BLAKE2b-256 9442bf75f9f5153b66340f7aae151ef8a788fa6ff0240dd65d1ad6e9543aee90

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa0dd8772ae3d2bafe9e006dcdc413513d361538df50482478409a3c6cce93cc
MD5 9ca776eb0805caa48460bbf319e840f0
BLAKE2b-256 7d7f41626fcb9278473b5058f1066179aed836fdf58552e4adc317d4d0542b33

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28f41221da35a556d5fb51000a06182ce21b683342e7267314164ad4e6645879
MD5 04ba278d6698630040aa81dc42de0b58
BLAKE2b-256 ca69980068d8db431b740b657e952c4119552cd3378f6dad648de3f592bd5022

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38cb0a86808f5865392fa0ecf74efcbed8d3b131a12fd4935937a56bb5c0220a
MD5 3c330f68ad6d137159c41f888c4a71b9
BLAKE2b-256 3622ba0684ea3536b66d895c1d84418cad5521a52f632341dce06e90988519c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54c55a6ce2e5913e160b1f1924634a31fab2fcede01dd7610317ec9726e5e801
MD5 af226e73d0d9ec50e73da0c8582b61ac
BLAKE2b-256 f8e65b0b743524dfe8988b9ed3a85b8ecfcd8241ad00e1e5bfa1b669d03632f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2cf65fb9f23e79e162606e5f2c91df86c261ba5ed0d24d70ee6fe14af4291aa0
MD5 a6196bbb70dbfd4780d1469d517f40e9
BLAKE2b-256 5c81a032420b3c910d14804edde2e4ae8602ed0d11d4432b1ede462c65339c22

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ffroute-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 600.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 01b2d87f4fbd2e014c7cb646a6d0eefa437389edecbef54f60f978643066d323
MD5 8cdf18f53ae08a1b57f70f6ecd49b18b
BLAKE2b-256 a05c90bd8a8eb72cd7e8c1840640bde12760c831d4db7fd8b7701777dd2436b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34dc81126cf16c6e0011b477bde0456ddf21d5526658805233d33dc9080aeb88
MD5 35867fdf1dca07c8f6bd98edfa216dc2
BLAKE2b-256 6f8fdfbcccdf7047476634dff05d810a93ce99695f1239dac975e0b0d16b8b40

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b6eaeb0c033f9d0f2f0c649531e53e11f74624a1bff4b17d8b210575fff4c13a
MD5 e564074e8d738ba8df9dd9a30ec71ecb
BLAKE2b-256 daacb664e9fb144867f81d3b625dc10a41652289c30d6e503660f06b784eb9a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a321102c72b377339797ce526bdcec3fb0fe48de6132c8ea3c25d1fe3dc3eda2
MD5 44950f73b4c43af89d7161a06cf3ce6c
BLAKE2b-256 677d234c501235919ce3a81c912bc68e4f737fd0175f2f372752729045471000

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 669719bd802ed79ccec6e10e158a0365ae2bfe2f05cda95a81c37926ca919760
MD5 43b9d58165f8a32986ac8af62c537072
BLAKE2b-256 0837350368b7b6195e225abd4600ee1aae35ee20397c1f47555f21f148796cc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50a0251c9f8728072ada65eff0787601b6ca181815fdf7cc83af68efa51ceb70
MD5 941adf88dcb68d42eb01ce7ac3bd4a01
BLAKE2b-256 ff0009b1e0a6eddadab8cb0cb3ca6bddf00ca52b1d69157eff58394a44ecb723

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 81a4e8a3260f24465a3893e4819d3851b9f684187b565e40e45e9139f53d10e9
MD5 9abac69674d84adab57826291a74065c
BLAKE2b-256 1d408f67b66871f6c074680ec2be5de950ab8646325c21c7337de14d478e62d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ffroute-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 601.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1050dc9c8571a039e7c200d1b3fc29414d67f01e8da2f9685cc4c3ba00239197
MD5 090d7e0b28c7e71e088ce638c775931f
BLAKE2b-256 eb8d35ab8a98de39a5fccc1afd88049f209864886e7305e7718cde658f261714

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4dd080d2de67c4d8a5fedb7de3c777c3ac53d2ec354096fe7f3ee3cd97cd5311
MD5 1da8be58166700e64a6bd5fa85f151fc
BLAKE2b-256 6b558d9cfe1b020117baf00e0f6459767f115b6377ab1eb044e70354b914b6c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f90ec308a17da5e031dff425f368eb946060054ef62da53af181b2b6276edc3f
MD5 ac8629afc4d11926e40f1dcb76bd5f49
BLAKE2b-256 305e00151f1772f67c80cc7a14a079165effe0a3ce0e18b43393df6e330b3513

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 192f88354a6161600828ec11d709734bf0cbba165e22d8102bdec4cc7d04f020
MD5 c0dd6753c38c6bd0f7223b25a960b260
BLAKE2b-256 217cce321beb7885c992641b6e34f242d2ef15ba0218b9da15e1f2ad4431c674

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ed7eb5f17e5e3f885ea6dc701590f60b7599c65f078276e5729a206d932f608
MD5 7a98b345a64cf117bab0abf577fb07e6
BLAKE2b-256 40e64d5c81097a23976015de6b8d428c95ba65ff488f44655714fb458d17f0e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d81a5d0d4e8757fe9f04e1c92bffb429c72a8fc1f2857f3b5172488aed980c13
MD5 c15e822e8e8a1274477566965465bb6c
BLAKE2b-256 1b882f4ae2c94acca648d34e20470138aa7770baf5dd2bc08749fb7325cf6a5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d6107c5059feca2c6d5ea17ec650e216525ae687e8c6584640a3ebaafcd6867e
MD5 1e463bf0cb69cdcf5c36f3e5cf7f92e9
BLAKE2b-256 a29de4023a7684574951b21afd402c0f35e81ca040ccb2445c24cf428a5afa82

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ffroute-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 601.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d87056ab567b00c9d710b4a9276c56486c0f78bda516c283e7f4e3b2a9f5795c
MD5 a6ab1abdeed1d241cec2d308cbedae6a
BLAKE2b-256 6ba6dfc015999890a995eb59d2146b049074dc5079341b6cdb9c6c8231df28c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e193f63bda3ef54a1cf71ba7ea13faf73518d1822f8f93443518602a947d5f7f
MD5 7cfdaa5c7263767044052937ad4f8243
BLAKE2b-256 40c8fb08d58347d993bd9c8ef36afef1697209352a9c23cbf502fc8bdbd8d9a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 81f9beff46552c48392557db24dc96c3722f9dd7d882248f75fa85322b26e5ea
MD5 d2e10f22ed929d16a5a74fae21dfd24b
BLAKE2b-256 de670db26b2f95cec2865353f33076a9603a004b937d47ac98c164fa0c2830ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58fbd469d5b7b239631c439c6a7087087670889d6bc0b78a3669371cc5aa1851
MD5 d572d08c5577ed39f77b867de0dbf7aa
BLAKE2b-256 ae1ce670bff41a17a2da53bbe090b02f91edf4f05fb2dee3f5545e4d6d8e2c1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f58da748b19e9e5d0e152184d06882a154028ae874c91b457c557e02c41fafed
MD5 4416e4edd973a891387d01acbc500d2b
BLAKE2b-256 37b1655e9e5496f933ccf1014779c3085b64ff8a60625b67a4de5e904012699b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7503b9f8fa3ec4ac5555cfe2900ccd2a7d977702f5575f6323e6a91a2055b2a4
MD5 a923b0c70f7f1e7043a8968dde901447
BLAKE2b-256 6d7945f46cf1ca521c379b1458f10a35f289207f0cc1586b56a5ddc51186a5e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on jirikuncar/ffroute

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

File details

Details for the file ffroute-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ffroute-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 282c60c0b39097f5e2cac22e724d7f4b013b9fa925c93ea6b489596931efe3cf
MD5 668c10ed554a03ecb671fe7d4d6ebb3f
BLAKE2b-256 5aea738df68cc9d4a88701eb5e2399ffa1e3696529a998cbbacdfbf6fc5b1c9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffroute-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on jirikuncar/ffroute

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