--- id: furl version: "2.1.4" license: Unlicense license_treatment: permissive maintenance: active --- # furl — URL manipulation made simple. License: permissive · Maintenance: active · Downloads: 6.0M/mo ## 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 above — 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 pip install furl uv add furl 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: unspecified - Install friction: low - Maintenance: active - Downloads: 6.0M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags url parsing and manipulation, query string builder, url component access, path and fragment handling, url encoding and decoding, urlparse alternative, url construction library, url-handling, parsing [View on SkillFed](https://skillfed.io/packages/furl) · [View on PyPI](https://pypi.org/project/furl/)