yarl
Yet another URL library
Install
yarl on PyPI
pip
pip install yarluv
uv add yarlpoetry
poetry add yarlPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — idna, multidict, propcache |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the 100 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: yarl-1.24.5-py3-none-any.whl
Keywords: cython, cext, yarl
About yarl
from the package's own PyPI description — quoted content, verbatim
yarl
The module provides handy URL class for URL parsing and changing.
.. image:: https://github.com/aio-libs/yarl/workflows/CI/badge.svg :target: https://github.com/aio-libs/yarl/actions?query=workflow%3ACI :align: right
.. image:: https://codecov.io/gh/aio-libs/yarl/graph/badge.svg?flag=pytest :target: https://app.codecov.io/gh/aio-libs/yarl?flags[]=pytest :alt: Codecov coverage for the pytest-driven measurements
.. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json :target: https://codspeed.io/aio-libs/yarl
.. image:: https://badge.fury.io/py/yarl.svg :target: https://badge.fury.io/py/yarl
.. image:: https://readthedocs.org/projects/yarl/badge/?version=latest :target: https://yarl.aio-libs.org
.. image:: https://img.shields.io/pypi/pyversions/yarl.svg :target: https://pypi.python.org/pypi/yarl
.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat :target: https://matrix.to/#/%23aio-libs:matrix.org :alt: Matrix Room — #aio-libs:matrix.org
.. image::...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
yarl provides an immutable URL class for parsing, validating, and manipulating URLs with automatic percent-encoding and convenient property access to URL components.
Low friction: pure wheel distribution (yarl-1.24.5-py3-none-any.whl) with only three lightweight runtime dependencies (idna, multidict, propcache). Active maintenance—released 24 days ago with recent commits and 1490 GitHub stars.
Apache-2.0 permissive license allows free use, modification, and distribution in both open-source and proprietary projects with minimal restrictions.
Usage
pip install yarl
from yarl import URL
url = URL('https://www.python.org/~guido?arg=1#frag')
print(url.host) # 'www.python.org'
print(url.path) # '/~guido'
Requires Python 3.10 or later; optional C extension compilation can be skipped by setting YARL_NO_EXTENSIONS environment variable or using --config-settings=pure-python=false, though pure-Python version is slower.
Verdict: yarl is a production-stable, actively maintained URL library in the top 100 PyPI packages with zero known vulnerabilities. Its immutable design, automatic encoding/decoding, and low install friction make it suitable for most URL-handling tasks, though users should be aware that the pure-Python fallback (used on PyPy or when extensions are disabled) has performance trade-offs.
Needs verification
- Performance characteristics and benchmarks comparing the C-compiled vs. pure-Python implementations in real-world scenarios.
- Compatibility with async frameworks beyond the aio-libs ecosystem that may depend on yarl.
Similar packages
permissive · top 100 on PyPI
url-normalizepermissive · top 1,000 on PyPI
frozenlistpermissive · top 100 on PyPI
aiohttppermissive · top 100 on PyPI
hypothesiscopyleft · top 1,000 on PyPI
multidictpermissive · top 100 on PyPI
async-lrupermissive · top 1,000 on PyPI
cffipermissive · top 100 on PyPI
Protegopermissive · top 1,000 on PyPI
rpds-pypermissive · top 100 on PyPI