$npx skillfedfor your agent

rfc3987

Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)

With conditionsPyPI InternetReleased Jul 20183.0M downloads / moGNU GPLv3+Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — rfc3987-1.3.8-py2.py3-none-any.whl
v1.3.8 · released 2018-07-29

Yes, with conditions. The package is stable, has no dependencies, and correctly implements RFC 3986/3987 for URI parsing and validation. However, it is archived and unmaintained since 2018, so it will not receive bug fixes or Python compatibility updates. Install it only if you need RFC-compliant URI handling and are willing to accept that maintenance responsibility yourself. The GPLv3+ copyleft license also requires careful review if you are building proprietary software.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • GPLv3+ copyleft license requires careful review before use in proprietary code.
  • Package is archived and no longer maintained.
  • Low install friction with no runtime dependencies.

License · maintenance · safety

GNU GPLv3+ (copyleft) — Licensed under GNU GPLv3+, a copyleft license. Any code that imports and uses this package in a proprietary application must comply with GPLv3+ terms, including potential source code disclosure obligations.

last release 2018-07-29 (2938 days) · last repo commit 2024-01-11 · 46 stars · archived

0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,996,291 downloads/mo, #2,794 on PyPI

Verify before relying

from rfc3987 import match, parse, resolve

# Validate a URI component
assert match('%C7', 'pct_encoded')

# Parse a URI into components
d = parse('http://example.com/path#fragment', rule='URI')
print(d['scheme'], d['authority'], d['path'])

# Resolve a relative URI against a base
result = resolve('http://a/b', '../c')
  • Whether the package works reliably with modern Python versions beyond 3.6, given its archived status and lack of recent updates.
  • Whether the optional regex module dependency (mentioned in docs) is actually required for common use cases or only for advanced pattern compilation.
Same gist for agents: .md · .json

What it is and what it does

rfc3987 is a regex-based URI and IRI parser and validator that implements the RFC 3986 and RFC 3987 specifications. It provides functions to match strings against RFC rules, parse URIs into their component parts (scheme, authority, path, query, fragment), compose URIs from parts, and resolve relative URI references against a base URI. The package has no runtime dependencies and is distributed as a pure Python wheel.

The module is designed for applications that need strict RFC-compliant URI handling, such as web frameworks, HTTP clients, or any tool that must correctly parse and validate internationalized resource identifiers. It includes pre-compiled regex patterns and utilities to extract named subcomponents from URIs. However, the package has been archived since 2018 and receives no active maintenance, so it should be considered stable but not evolving.

Use it for

  • Validate URI strings against RFC 3986 rules before processing them in a web application.
  • Parse a URI into its component parts (scheme, host, path, query, fragment) for routing or request handling.
  • Resolve relative URI references (e.g., '../page') against a base URI to compute absolute URIs.
  • Extract and validate percent-encoded components or check for well-formed IPv6 addresses in URIs.
  • Build URI composition utilities that guarantee RFC 3986 compliance in URL generation.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, with conditions.

The package is stable, has no dependencies, and correctly implements RFC 3986/3987 for URI parsing and validation. However, it is archived and unmaintained since 2018, so it will not receive bug fixes or Python compatibility updates. Install it only if you need RFC-compliant URI handling and are willing to accept that maintenance responsibility yourself. The GPLv3+ copyleft license also requires careful review if you are building proprietary software.

Install

rfc3987 on PyPI

Before you install

Low install friction with no runtime dependencies. However, the package is archived and unmaintained since 2018, with the last commit in January 2024 showing only minor fixes. It is marked as Production/Stable but receives no active development.

GPLv3+ copyleft license requires careful review before use in proprietary code. Package is archived and no longer maintained.

License in practice

Licensed under GNU GPLv3+, a copyleft license. Any code that imports and uses this package in a proprietary application must comply with GPLv3+ terms, including potential source code disclosure obligations.

Quickstart

from rfc3987 import match, parse, resolve

# Validate a URI component
assert match('%C7', 'pct_encoded')

# Parse a URI into components
d = parse('http://example.com/path#fragment', rule='URI')
print(d['scheme'], d['authority'], d['path'])

# Resolve a relative URI against a base
result = resolve('http://a/b', '../c')

Verify before relying

  • Whether the package works reliably with modern Python versions beyond 3.6, given its archived status and lack of recent updates.
  • Whether the optional regex module dependency (mentioned in docs) is actually required for common use cases or only for advanced pattern compilation.

Package facts

LicenseGNU GPLv3+ copyleft
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceAbandoned 2,938 days since the last release
Last repo commit repository archived
First released
Downloads2,996,291 / month, #2,794 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.2Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Topic :: Internet

Evidence: rfc3987-1.3.8-py2.py3-none-any.whl

Tags

Capabilities
URI parsing and validationRFC 3986 regex patternsIRI internationalized resource identifiersURI reference resolutionURL component extraction
Topics
uri-parsingrfc-compliantarchived
PyPI keywords
URIIRIURLrfc3986rfc3987validation

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 › “RFC 3986 regex patterns”

  • rfc3987Provides RFC 3986 and RFC 3987 compliant regular expressions and…
  • uritoolsParses, validates, and composes URIs and URI references according to…
  • rfc3986Parses, validates, and normalizes URIs according to RFC 3986,…

Give your agent the search over MCP, or paste the wish link into any chat.

More Internet packages

botocore Worth it
PyPI · Internet · released Aug 2026

Botocore provides low-level, data-driven access to Amazon Web Services APIs, serving as the foundation for the AWS CLI and boto3 libraries.

Install it if you need programmatic access to AWS services.

permissive licensepure Python · 3.10+
1.5Bdownloads / mo
aiobotocore Worth it
PyPI · Internet · released Aug 2026

Provides an async client for AWS services using botocore and aiohttp, allowing you to call AWS APIs asynchronously within asyncio-based applications.

Install it if you need to call AWS services from async Python code; it is the standard way to do so.

Apache-2.0pure Python · 3.10+
1.2Bdownloads / mo
pydantic Worth it
PyPI · Python Modules · released May 2026

Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.

MITpure Python · 3.9+
1.1Bdownloads / mo
filelock Worth it
PyPI · Libraries · released Aug 2026

Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.

MITpure Python · 3.10+
717.1Mdownloads / mo
fastapi Worth it
PyPI · Software Development · released Jul 2026

FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.

MITpure Python · 3.10+
568.6Mdownloads / mo
googleapis-common-protos Worth it
PyPI · Internet · released Aug 2026

Provides common Protocol Buffer message definitions used across Google Cloud APIs, enabling Python clients to interact with Google services.

Apache-2.0pure Python · 3.10+
513.7Mdownloads / mo

See also hyperlink · rfc3987-syntax · arcp · rfc3986 · rfc3986-validator · uritools · uritemplate · pyuri · uri-template · std-uritemplate