--- id: rfc3986 version: "2.0.0" license: Apache 2.0 license_treatment: permissive maintenance: abandoned --- # rfc3986 — Validating URI References per RFC 3986 License: permissive · Maintenance: abandoned · Popularity: top 1,000 on PyPI ## Install pip install rfc3986 uv add rfc3986 poetry add rfc3986 ## Description rfc3986 ======= A Python implementation of `RFC 3986`_ including validation and authority parsing. Installation ------------ Use pip to install ``rfc3986`` like so:: pip install rfc3986 License ------- `Apache License Version 2.0`_ Example Usage ------------- The following are the two most common use cases envisioned for ``rfc3986``. Replacing ``urlparse`` `````````````````````` To parse a URI and receive something very similar to the standard library's ``urllib.parse.urlparse`` .. code-block:: python from rfc3986 import urlparse ssh = urlparse('ssh://user@git.openstack.org:29418/openstack/glance.git') print(ssh.scheme) # => ssh print(ssh.userinfo) # => user print(ssh.params) # => None print(ssh.port) # => 29418 To create a copy of it with new pieces you can use ``copy_with``: .. code-block:: python new_ssh = ssh.copy_with( scheme='https' userinfo='', port=443, path='/openstack/glance' ) print(new_ssh.scheme) # => https print(new_ssh.userinfo) # => None # etc. Strictly Parsing a URI and Applying Validation `````````````````````````````````````````````` To parse a URI into a... ## AI interpretation — verify before relying rfc3986 parses, validates, and normalizes URIs according to RFC 3986 specification, offering RFC-compliant alternatives to the standard library's urlparse with support for strict validation and component extraction. Verdict: rfc3986 is a stable, dependency-free RFC 3986 implementation suitable for URI parsing and validation tasks, but its abandoned maintenance status (no releases since January 2022) means it will not receive security patches or compatibility updates for future Python versions. Use it only if you are confident the codebase is stable for your use case and can accept the risk of an unmaintained dependency. [View on SkillFed](https://skillfed.io/packages/rfc3986) · [View on PyPI](https://pypi.org/project/rfc3986/)