Roadmap
Public plan toward stabilising yew-nav-link at 1.0. Anything here is a
target, not a promise; the GitHub milestones track the
authoritative cutline of each release.
0.9.x — previous line (closed)
Released. Status: closed; no further patches. The active line is 0.10.x.
- 0.9.0 dropped the macros feature.
- 0.9.1 replaced the multi-page demo with a single-file SPA, fixed the
use_breadcrumbssegment-loop shadow binding, and SPDX-tagged every source file. - 0.9.2 surfaced
BreadcrumbLabelProviderat the crate root. - 0.9.3 made
BreadcrumbLabelProviderContextpart of the public API so consumers can actually inject a provider (the trait alone was reachable but inert). - 0.9.4 fixed
normalize_path./..resolution, madeurlencoding_decodeUTF-8 aware, and stoppedpagination_pagepanics on adversarial inputs.
0.10.x — current line
Released 2026-05-10. Status: maintained.
The breaking-change pass before 1.0 — four targeted breakages consumers upgrade through in one hop:
NavErroris#[non_exhaustive], leaving room for new variants under semver-minor.BreadcrumbLabelProviderContext’s tuple field is private; construct via::newand read via.provider().- The orphan
route_params.rsmodule is removed; migrate touse_route::<R>()with aRoutableenum. - Active
NavLinkemitsaria-current="page"on the rendered<a>for screen-reader-correct active state.
MSRV review for the line completed with no bump: stable Rust 1.95 was the latest stable when 0.10 was cut and remained so through the window (see closed issue #71).
Subsequent 0.10.x patches address CI, dependency bumps, and documentation only — no public API changes.
1.0.0 — API freeze
Target window: earliest 2026-08, after 0.10.x has spent at least one quarter in the ecosystem with no public API changes. Status: dependent on 0.10 feedback.
The 1.0 commitment is small and deliberately boring:
- Public API freeze. Every name re-exported from
lib.rsbecomes a semver-stable surface; subsequent breaking changes require a 2.0. - Documented backwards-compatibility window in
SECURITY.mdanddocs/REQUIREMENTS.md: how long 1.x receives security patches. - Migration guide from 0.x in
CHANGELOG.mdfor the major bump.
Nothing about 1.0 is meant to be flashy. It is the version we keep shipping for years.
Beyond 1.0 — speculative
Tracked in GitHub Discussions, not committed to:
- SSR support: yew-router supports it, but the active-state hooks have not been tested under SSR.
- Optional
axum-router-style integration helpers for projects that generate theirRoutableenum from a backend. - A standalone
aria-currentconsumer hook for projects that build their own link components but want yew-nav-link’s matching algorithm.
How to influence the roadmap
Open an issue with the enhancement label and a clear use case. Concrete,
narrow proposals beat large redesigns; we will steer toward what existing
consumers actually need.