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: Yes. Recent updates show active development, with changes landing within days (for example, v17.1.0 on 2026-07-07 and v17.0.0 on 2026-06-29), and an upstream push as recent as 2026-07-07.
- Cadence: Currently appears to be roughly weekly to biweekly, at least across the latest major versions (v17.0.0 in late June, v17.1.0 in early July 2026).
AI summary generated
Recent updates
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.