Skip to main content

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 trie — 100–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]'  # adds FFRouter (Starlette drop-in)
pip install 'ffroute[fastapi]'    # adds FFAPIRouter (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()

Using FFAPIRouter as a static class

FFAPIRouter is a real importable class (FFRouter × APIRouter mixin) that backs speedup() for FastAPI apps. You can also construct it directly and assign it as app.router, which avoids the post-construction swap entirely:

from fastapi import FastAPI
from ffroute import FFAPIRouter

app = FastAPI()
# ... register routes via @app.get / include_router ...
new_router = FFAPIRouter()
new_router.routes.extend(app.router.routes)
app.router = new_router
app.router._rebuild_index()

This is the forward-compatible shape: once Starlette and FastAPI accept a router_class= keyword at construction time (PR proposal pending), it becomes a one-liner: FastAPI(router_class=FFAPIRouter). The static class ships in 0.1.3 to make that pitch concrete.

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.FFAPIRouter fastapi fastapi.routing.APIRouter subclass; drop-in replacement (preserves _get_routes_version, add_api_route, include_router, HTTP-method decorators)
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.

Metadata

Release files for ffroute 0.1.4

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

Source distribution (sdist)

Source distribution for ffroute 0.1.4
File Size Uploaded
ffroute-0.1.4.tar.gz 62.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ffroute 0.1.4
File
ffroute-0.1.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ffroute-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
ffroute-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
ffroute-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
ffroute-0.1.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
ffroute-0.1.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ffroute-0.1.4-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
ffroute-0.1.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ffroute-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
ffroute-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
ffroute-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
ffroute-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
ffroute-0.1.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ffroute-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
ffroute-0.1.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ffroute-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
ffroute-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
ffroute-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
ffroute-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
ffroute-0.1.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ffroute-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
ffroute-0.1.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ffroute-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
ffroute-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
ffroute-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
ffroute-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
ffroute-0.1.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
ffroute-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
ffroute-0.1.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ffroute-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
ffroute-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
ffroute-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
ffroute-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
ffroute-0.1.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
ffroute-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 25.7 MB

Release files / ffroute-0.1.4.tar.gz

Download URL ffroute-0.1.4.tar.gz
Size 62.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4993f251ee59f836ce91e0b677a170cd3b286a212c0c31849c948ba5d791ca5f
BLAKE2b-256 checksum
How to use checksums
f2c17595bf6c47461a73722976e40156ae32a97df51da37506d935875b2de613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-win_amd64.whl

Download URL ffroute-0.1.4-cp314-cp314-win_amd64.whl
Size 602.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7f1be585eb2f1316e47f6c94cbdf54216529190c37e3daff1f8a2443768f6d67
BLAKE2b-256 checksum
How to use checksums
c434467281890bdf4947861c99d4d96d16c37cb1cd3c1ba8dbb706df9ecb7df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL ffroute-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
Size 944.7 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7889c9c585d2bde476ea9363c3085c559bba7efc3d89b347a78e941e7501220c
BLAKE2b-256 checksum
How to use checksums
fc96b1272ba62b10c05f84721425ff6f54aebdd80899164cfccd6f09c04cbcb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL ffroute-0.1.4-cp314-cp314-musllinux_1_2_aarch64.whl
Size 863.5 kB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
8e314cff8749cfd715550d730ef9855e55ab3a1c5388e93cde21d23a8db0d3a1
BLAKE2b-256 checksum
How to use checksums
41767b07fc1e75ba3e592e54474c4f2c63b8ae16d13296469c29eba7c37e3e67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ffroute-0.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 725.1 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0376556153f4bd3a0cfbaf4cba52790f680df784a0eb842b2e262d64c38bd042
BLAKE2b-256 checksum
How to use checksums
21c310d5fe12472414e972419f0b2c0a98a77f2e6dd0791f59f4305a69636846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ffroute-0.1.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 685.2 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
692ad3ae99cd6dde24ad867f4121520008e3022c47856abae982a826f2539f35
BLAKE2b-256 checksum
How to use checksums
95ac14291d5240c8aea4a50f87f380ea37e3cba462b6b1738cfdf82b46724af1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL ffroute-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Size 622.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
974134724e357c50a385a520f3d26f8ec2a6ed171d5f7837ac425eb5a9dde8fe
BLAKE2b-256 checksum
How to use checksums
3b33975a4409af9e96426e39d8a6e598e6615df0527cb22999438300a41922d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp314-cp314-macosx_10_12_x86_64.whl

Download URL ffroute-0.1.4-cp314-cp314-macosx_10_12_x86_64.whl
Size 681.8 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
12db454479343c7ce25ca5727c4dca79f3911c63a1baa033cd152d8b0bd17cd6
BLAKE2b-256 checksum
How to use checksums
da96bac7e2d70cc0b085e951b06e1b06f839dd85bc72cef47fe15e85e5e416c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-win_amd64.whl

Download URL ffroute-0.1.4-cp313-cp313-win_amd64.whl
Size 602.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4e4cd088a4f63d851f68a77edb71cd35d4a6511755ead4027d0fd076ef425aa5
BLAKE2b-256 checksum
How to use checksums
bb2ad59161ac16e9effed4bdb1e919989070eaf4093bdb8e9472a55a64016dda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL ffroute-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
Size 945.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
048d75da76e31ba9b7bf5bddfae46ba085d1507126fa58007cdea75c610ee828
BLAKE2b-256 checksum
How to use checksums
65155dc51ffe2944eeada6db201c6894068083ba94ab085cbbc9a4befd32c338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL ffroute-0.1.4-cp313-cp313-musllinux_1_2_aarch64.whl
Size 863.5 kB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
b85ac91f17387aacdc3c7fc423729d509ec6460a60e8c2e61cc2065d301e1e54
BLAKE2b-256 checksum
How to use checksums
ba14618e6b3c957ce61bf8affdaae611f43d4e481701307f0e686c77e8f7679f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ffroute-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 725.4 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0a51a0a6160851face037a4e68282490648daaa61788cc1b60703a13d4843a74
BLAKE2b-256 checksum
How to use checksums
75e6b0e73f164c979628ca1dc1f527b21e680bc038ee69170174b4624844bf60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ffroute-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 685.6 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0915d6616f1edabb65c09551a07c44c7be2941968500e467cc1b60cf2ec7da17
BLAKE2b-256 checksum
How to use checksums
96f3725ba4f7d70a764dc6f5c1423aed35cde695993062eb6cafce399c9b25b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL ffroute-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Size 623.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9e310f0242f36e3163602b1af93dd64672eb564ae2404f41a1e815181b2d4e58
BLAKE2b-256 checksum
How to use checksums
801afb8394df91008c499208b88dd66c48d41f89e1a826322b9f19ba9d829a3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl

Download URL ffroute-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl
Size 681.9 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4a3696974669170593a9c9b7a037a9db522cb5bb9a235b2abb43e0dfd33a04c2
BLAKE2b-256 checksum
How to use checksums
ff71c25925b20735cdb67cde0daa7c52b21ede908b9ca452b906b30550114f80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-win_amd64.whl

Download URL ffroute-0.1.4-cp312-cp312-win_amd64.whl
Size 602.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2a6608824bfea3749e05a7740875385671cad6c8250633b7fdc4fa460780a400
BLAKE2b-256 checksum
How to use checksums
78ade4f5cb407c206b4cc3db564e0e463af015fb1e3858734aa94c4b5d241883
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL ffroute-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Size 945.3 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
81cf55d70b366e66a7e87a20d31ff5150d94dac53bc752184452c72e495d3516
BLAKE2b-256 checksum
How to use checksums
385918cbf8fd88137f98a5b63c16d655b35d843e662dbacc3fb4c59da5abfe0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL ffroute-0.1.4-cp312-cp312-musllinux_1_2_aarch64.whl
Size 863.5 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
20451fcbd16aa7c757ca6a5f7a569118b7bdbb9ce5526b9f868089dbcb36ab46
BLAKE2b-256 checksum
How to use checksums
1b41427d139346ce9e9a265f3b3ea0ac62df97bd4570883cd10a52c041e610e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ffroute-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 725.7 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ba1a3fb40c4eec4e1183c0bb5156d747bcf235cdf29c5b81fe026d025f5a0865
BLAKE2b-256 checksum
How to use checksums
b895764b9abca208a32199f708ca931e8ae79e22a8edfe2b13f754f3c0bdeb51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ffroute-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 685.7 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5384af45371f5c842815f9a57522b77d14e5a67a554778eb04284a8bd71dd92b
BLAKE2b-256 checksum
How to use checksums
fda60115621c594f06967d72df2093c25abbc5235c224a52b24d50b6f4144eab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL ffroute-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Size 623.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5dcf6f682c93347ff852b514778cb7bb6f6fa51caf9080b338ed99ac4192c542
BLAKE2b-256 checksum
How to use checksums
5999250c8955dfa8b3749cc208716ec4f33380424b120e92f207b49748e1433f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl

Download URL ffroute-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Size 681.9 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
43e4ae57287b1e26171ebe90bdc8674ceb6b7d7be31863002310cf0275dbdea0
BLAKE2b-256 checksum
How to use checksums
75fc75522c4c9cf931742ec5c926a17282b1960934f6697b981917971ea3973c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-win_amd64.whl

Download URL ffroute-0.1.4-cp311-cp311-win_amd64.whl
Size 603.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b42dba85171364d56fd49e678cd3b1d4e9023c94e41da9db2e17d98ab042f124
BLAKE2b-256 checksum
How to use checksums
6dd93ff806454b0ab1909f524bf59a3bd76012d8d5339ded2d128b14988f990f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL ffroute-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Size 945.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7ffb6c141e264a9fa95df3dda3935c8d74f8fc7d00d3a032434226b5a1d59a24
BLAKE2b-256 checksum
How to use checksums
896ab491bef74e6e86eb05d65fb23c1db65c2aed24d20e4f517ff9d9ebce6987
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL ffroute-0.1.4-cp311-cp311-musllinux_1_2_aarch64.whl
Size 864.4 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
7759f4cd133df561c4c7f3597d606ef55b24275caab6cb72ad54542d33a7fd19
BLAKE2b-256 checksum
How to use checksums
b9430a71d4d6fb7750cb086eabba3845cbe992c4b3f587256d2e5ab2ee9d7597
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ffroute-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 726.3 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
82843736ebc8232a5a5a463dbec9d61853e0bb2bbadd9c98c36ae66df5859ce6
BLAKE2b-256 checksum
How to use checksums
e357f6149b44d114696bdc4d6f270278f16b0deab31cadcbf845cfad72a8857a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ffroute-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 686.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8f23f5961e80d03ae22ac071bf8448a735bc0f0f4b28a596630407d689f57393
BLAKE2b-256 checksum
How to use checksums
2bf94afab2cd75f54d921764199459bf69a36d1e617fef2055bb84f43a49a09b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL ffroute-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Size 623.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f87a9eccf70664ebc402c8126b3089d07993153c71f30758ef148db8f277ef02
BLAKE2b-256 checksum
How to use checksums
eebf933b0c786cb22b13483a4eb7126ea91889b36600b0ad028581329aeb9361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl

Download URL ffroute-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Size 681.7 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
697143c3ec46f8014c64ff576b17583031004e9d4a17396d8658395a6a375aed
BLAKE2b-256 checksum
How to use checksums
c5cee58efbca8d900be4e9169f94751b9cb16fb261dee7832a23e444f76cb4f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-win_amd64.whl

Download URL ffroute-0.1.4-cp310-cp310-win_amd64.whl
Size 603.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
64182b121171aa73d469faeea6d0559ce8575354b1f54d30a4e06d86a2b48bf0
BLAKE2b-256 checksum
How to use checksums
4f5ec0187ea52c3e371bd762a075933042990d9be9470e3fea1c9b5e019b0642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL ffroute-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Size 946.1 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0f84bf7edb2a80b5ee6daedc8e42fff465566cfc8804b1b2888e9ecbf8b6f7d6
BLAKE2b-256 checksum
How to use checksums
7d27590568e420cc2ae15ff1cb6aa98a7464b4bea96f310fcfaa56ed7b1810dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL ffroute-0.1.4-cp310-cp310-musllinux_1_2_aarch64.whl
Size 864.9 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
86ad73bae8c048db799bb0611dc192a214dd14e96e028898532550aadf175e17
BLAKE2b-256 checksum
How to use checksums
1aac3af0c41454b20666aba213d18cff465d29c7e2cd541b7a70ef9c7b273bee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ffroute-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 726.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
18003b4b06c0267c9dfdbbd0d83a56fe6cc9dd68186e0fa66f0d9187c4864463
BLAKE2b-256 checksum
How to use checksums
d618b0f1b0c3f21d584d36681d2c3067d12fce2e97109498d54a4cd8de7f1afe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ffroute-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 687.0 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
38955eab7a480020f2f7f92a02622af8692708453e0e11c19e2c3d9c42d8712a
BLAKE2b-256 checksum
How to use checksums
61139cfb363d6470e440197b1b6b14f99877358572d6052cb16ff318f5e1a21e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL ffroute-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Size 623.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
95c2a9318451865f7f69945164f9788e2a0984e3304629e1d7e7bbb2642b98e5
BLAKE2b-256 checksum
How to use checksums
fad806e85e7792b641db68571ed71b97e6f86970ccec25324c68f4ab3ff6264a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release files / ffroute-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl

Download URL ffroute-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl
Size 682.1 kB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0368e1c54b64899d96728a644b5a2434d96d069e56e3176554d3c94647cd84e1
BLAKE2b-256 checksum
How to use checksums
9f9afc17527912de8a7dc76e8cbf7b8cb861f68f9160617cc9005561ea2442dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

36 release files

0.1.3

36 release files

0.1.2

36 release files

0.1.1

36 release files

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