skillfed

furl

URL manipulation made simple.

furl v2.1.4 6.0M downloads/30d#1,985 on PyPI2,811
Permissive license Unlicense Active released

What it is and what it does

furl is a lightweight Python library that wraps URL parsing and manipulation into an intuitive object model. Instead of juggling urllib's functions, you work with a furl object whose attributes (scheme, host, path, args, fragment) map directly to URL components. Path segments and query arguments are stored decoded internally, so you manipulate them as plain strings; encoding happens automatically when you serialize back to a URL string. The library handles Unicode, percent-encoding, and fragment paths with their own query strings.

It's designed for the common case: you have a URL, you want to add or remove query parameters, change the path, or inspect components—and you want to do it without wrestling with string parsing. furl supports Python 3 and PyPy3, has no external C dependencies, and carries no known security vulnerabilities.

Use it for:

  • Building or modifying URLs programmatically in web scrapers or API clients without manual string concatenation.
  • Adding, removing, or updating query parameters on an existing URL while preserving other components.
  • Parsing URLs to extract and inspect individual components (host, path segments, query args, fragment).
  • Handling URL encoding and Unicode automatically when constructing URLs with non-ASCII characters or special characters.
  • Working with URL fragments that have their own path and query structure, common in single-page applications.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

furl parses and manipulates URLs by providing a simple object-oriented interface to URL components like scheme, host, path, query arguments, and fragments.

Yes. furl is production-stable, actively maintained, has minimal dependencies, carries no known vulnerabilities, and solves a genuine friction point in URL manipulation. Use it when you need to programmatically build or modify URLs more often than you'd use raw urllib—it will save you string-handling boilerplate and reduce bugs from manual encoding.

Install

furl on PyPI

pip

pip install furl

uv

uv add furl

poetry

poetry add furl

Installing furl

Before you install

Low install friction with only two runtime dependencies (six and orderedmultidict). Actively maintained with recent releases; last commit in February 2026 and latest release in March 2025. Repository shows 2811 stars and is not archived.

License in practice

Released under the Unlicense, placing it in the public domain with permissive treatment. You can use, modify, and distribute furl with minimal legal restrictions.

Quickstart

from furl import furl

f = furl('http://www.google.com/?one=1&two=2')
f /= 'path'
del f.args['one']
f.args['three'] = '3'
print(f.url)  # 'http://www.google.com/path?two=2&three=3'

Verify before relying

  • Whether the package is actively seeking a lead contributor/maintainer (mentioned in description but unclear if this affects stability)
  • Current test coverage and test suite maturity beyond 'well tested' claim

Package facts

License Unlicense (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 2 — six, orderedmultidict
Maintenance actively maintained — 523 days since the last release
Last repo commit
First released
Downloads 6,009,882/month — #1,985 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: furl-2.1.4-py2.py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: Public DomainNatural Language :: EnglishProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries

Tags

url parsing and manipulationquery string builderurl component accesspath and fragment handlingurl encoding and decodingurlparse alternativeurl construction library
url-handlingparsing

More Libraries packages