hyperlink
A featureful, immutable, and correct URL for Python.
Decision gist · record as of 2026-08-14
Yes. Hyperlink is a stable, zero-dependency library with a clear, narrow purpose and a decade of production use behind it. Install it if you need RFC-compliant URL handling, especially for query parameters or relative URL resolution. The only caveat is that the latest release is from 2021, so verify that it supports your Python version before committing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure-Python wheel with no runtime dependencies.
- Actively maintained with a recent commit history (last commit 2026-03-20) and production-grade stability inherited from over a decade in the Twisted library.
License · maintenance · safety
MIT (permissive) — MIT license (permissive): you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
last release 2021-01-08 (2044 days) · last repo commit 2026-03-20 · 297 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 34,782,084 downloads/mo, #755 on PyPI
Alternatives
Verify before relying
pip install hyperlink
from hyperlink import URL
url = URL.from_text(u'http://github.com/python-hyper/hyperlink?utm_source=README')
utm_source = url.get(u'utm_source')
better_url = url.replace(scheme=u'https', port=443)- Current Python version support: classifiers list 2.6–3.9 and PyPy, but latest release is from 2021-01-08 and last commit is 2026-03-20; whether 3.10+ are supported is unclear.
- Whether the package is still actively developed or in maintenance-only mode given the gap between latest release (2021) and recent commit activity.
What it is and what it does
Hyperlink is a pure-Python URL library that treats URLs as immutable objects, making them safe to pass around and modify without side effects. It implements RFC 3986 and RFC 3987 standards, so it handles both URIs and IRIs (internationalized resource identifiers) correctly. The library exposes a simple API: you parse a URL string with `URL.from_text()`, query or extract parts with methods like `.get()` for query parameters, and create modified copies with `.replace()` or `.click()` for relative navigation.
The package has no runtime dependencies and installs as a pure-Python wheel, so it works on any Python environment. It was originally extracted from the Twisted networking library, where it has been battle-tested in production for over a decade, so the implementation is mature and standards-compliant. It's useful whenever you need to work with URLs programmatically—parsing, validating, extracting parameters, or building new URLs from components—without worrying about mutation or RFC compliance.
Use it for
- Extract and manipulate query parameters from URLs in web scrapers or API clients.
- Build and modify URLs dynamically in HTTP client libraries or request builders.
- Parse and validate URIs in web frameworks or URL routers.
- Resolve relative URLs or navigate URL hierarchies in link crawlers.
- Construct IRIs with non-ASCII characters for internationalized web applications.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Hyperlink is a stable, zero-dependency library with a clear, narrow purpose and a decade of production use behind it. Install it if you need RFC-compliant URL handling, especially for query parameters or relative URL resolution. The only caveat is that the latest release is from 2021, so verify that it supports your Python version before committing.
Install
hyperlink on PyPI
Before you install
Low friction: pure-Python wheel with no runtime dependencies. Actively maintained with a recent commit history (last commit 2026-03-20) and production-grade stability inherited from over a decade in the Twisted library.
License in practice
MIT license (permissive): you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install hyperlink
from hyperlink import URL
url = URL.from_text(u'http://github.com/python-hyper/hyperlink?utm_source=README')
utm_source = url.get(u'utm_source')
better_url = url.replace(scheme=u'https', port=443)
Verify before relying
- Current Python version support: classifiers list 2.6–3.9 and PyPy, but latest release is from 2021-01-08 and last commit is 2026-03-20; whether 3.10+ are supported is unclear.
- Whether the package is still actively developed or in maintenance-only mode given the gap between latest release (2021) and recent commit activity.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 2,044 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 34,782,084 / month, #755 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 2Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: LibrariesTopic :: Utilities |
Evidence: hyperlink-21.0.0-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “url query parameter extraction”
- hyperlinkHyperlink provides an immutable, RFC 3986/3987-compliant URL class…
- repathConverts Express-style path strings (like `/user/:name`) into regular…
- url-normalizeStandardizes URLs to a canonical form by lowercasing schemes and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also rfc3987 · purl · uritools · rfc3986 · URLObject · rfc3986-validator · rfc3987-syntax · lazr.uri · uritemplate · yarl