whatwg-url is a JavaScript implementation of the WHATWG URL Standard. It provides a `URL` and `URLSearchParams` API that follows the spec, and it also exposes lower-level parsing and serialization functions that are useful for projects like jsdom that need to integrate URL parsing into their own code.
Project status
- Actively maintained, with very recent activity (upstream push on 2026-10-14, and tags continuing into v17.3.0 on 2026-10-14).
- Apparent update cadence is steady, about weekly to multi-week between recent updates (v17.3.0 on 2026-10-14, v17.2.0 on 2026-10-04, v17.1.2 on 2026-09-21, v17.1.1 on 2026-09-10).
AI summary generated
Recent updates
v17.3.0
Release v17.3.0 updates the implementation to ensure the `search` setter keeps `searchParams` in sync after normalization during parsing. It also updates the README to reflect a newer WHATWG URL spec conformance commit and refreshes the web-platform-tests permalink used by the test harness.
v17.2.0
whatwg-url v17.2.0 primarily updates its IDN handling dependency, tr46, to align with Unicode 18.0.0. The code diff shows this is implemented via dependency bumps plus an updated web-platform-tests commit used by the project’s test helper script.
v17.1.2
Release v17.1.2 fixes URL parsing for schemes like `constructor:example` and `constructor://HOST:80`. The code change is small but affects how the URL implementation detects “special schemes” (like http/https and related defaults).
v17.1.1
v17.1.1 is documented as a fix to make the public URL and URLSearchParams objects behave more like web platform objects when accessed through JavaScript Proxies, causing them to throw more often. However, the provided diff does not show the expected URL/URLSearchParams source changes, so additional modifications may be happening outside the snippet shown.
v17.1.0
v17.1.0 adds URL-string validation capabilities, including a new parser entry point that returns URL parsing validation errors and a new grammar-based valid URL string predicate. It also includes a spec-alignment fix for userinfo parsing involving astral code points, and supporting work that targets URL Standard issue #704 validation agreement.
Featuresv17.0.0
v17.0.0 raises the minimum supported Node.js versions and changes domain parsing to use an ASCII fast path (ASCII fallback) as part of the WHATWG URL parsing behavior. The diff also shows several additional behavioral safeguards in parsing (explicit radix usage) plus dependency and CI/test harness updates.
Breakingv16.0.1
Release 16.0.1 focuses on fixing `URL.parse()` so it returns a real `URL` instance rather than an internal implementation object. The diff also includes small live-viewer UI/console tweaks and adds a regression test covering the instance behavior.
v16.0.0
Release v16.0.0 updates the supported Node.js versions and adds support for non-UTF-8 encodings when parsing the URL query string. The implementation routes query percent-encoding through @exodus/bytes, while the URL API itself continues to assume UTF-8 for the fragment.
BreakingFeaturesv15.1.0
Release v15.1.0 updates the tr46 dependency, aligning internationalized domain name handling with Unicode 17.0.0. In addition, several non-runtime repository and tooling changes landed (demo HTML, test tooling config, and lockfile dependency bumps).
v15.0.0
whatwg-url v15.0.0 raises the minimum supported Node.js version to 20. It also updates URL state override parsing behavior for host/hostname and port to align with URL Standard changes. Beyond the documented notes, the release includes dependency bumps that were not called out in the release notes.
Breakingv14.2.0
whatwg-url 14.2.0 updates its tr46 dependency to Unicode 16.0.0 (and includes related URL Standard changes) and adjusts percent-encoding behavior. It also changes opaque-path handling to better preserve roundtripping behavior when parsing and serializing URLs.
Breakingv14.1.1
Release 14.1.1 is described as a performance improvement for very long inputs. The code changes focus on optimizing how control characters are trimmed and include a small tooling/config update plus a benchmark harness enhancement.
v14.1.0
Release 14.1.0 adds support for the WHATWG URL Standard static method `URL.parse()`. The implementation adds a nullable `parse` API to the URL WebIDL and a corresponding `URLImpl.parse` method, plus includes additional internal/refactor changes and tooling updates.
Featuresv14.0.0
Release v14.0.0 primarily modernizes the project to require newer Node.js runtimes, switching CI and package engine requirements accordingly. The codebase also changes several development and tooling behaviors (test runner, coverage tooling, and the live viewer deployment workflow) and bumps key dependencies like tr46.
Breakingv13.0.0
Release v13.0.0 updates URL/URLSearchParams to match newer WHATWG URL spec features, including URL.canParse(), URLSearchParams.size, and optional value parameters for has() and delete(). It also changes how blob URL origins are serialized when the embedded URL is not http or https, returning "null" instead. The release drops Node.js v14 support and updates tooling/test infrastructure accordingly.
BreakingFeaturesv12.0.1
Release v12.0.1 updates the whatwg-url dependency on tr46 to pick up IDNA related URL parsing fixes, including better handling of edge-case international domain name labels and Unicode 15.0.0 support. The project also updates its web-platform-tests test data and expands the test suite to include newly introduced IDNAv2-derived cases.