rfc3987-syntax
Helper functions to syntactically validate strings according to RFC 3987.
Install
rfc3987-syntax on PyPI
pip
pip install rfc3987-syntaxuv
uv add rfc3987-syntaxpoetry
poetry add rfc3987-syntaxPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — lark |
| Maintenance | aging — 391 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: rfc3987_syntax-1.1.0-py3-none-any.whl
Keywords: RFC 3987, RFC3987, parser, syntax, validator
About rfc3987-syntax
from the package's own PyPI description — quoted content, verbatim
rfc3987-syntax
Helper functions to parse and validate the syntax of terms defined in RFC 3987 — the IETF standard for Internationalized Resource Identifiers (IRIs).
🎯 Purpose
The goal of rfc3987-syntax is to provide a lightweight, permissively licensed Python module for validating that strings conform to the ABNF grammar defined in RFC 3987. These helpers are:
- ✅ Strictly aligned with the syntax rules of RFC 3987
- ✅ Built using a permissive MIT license
- ✅ Designed for both open source and proprietary use
- ✅ Powered by Lark, a fast, EBNF-based parser
> 🧠 Note: This project focuses on syntax validation only. RFC 3987 specifies additional semantic rules (e.g., Unicode normalization, BiDi constraints, percent-encoding requirements) that must be enforced separately.
📄 License, Attribution, and Citation
rfc3987-syntax is licensed under the MIT License, which allows reuse in both open source and commercial software.
This project:
- ❌ Does not depend on the
rfc3987Python package (GPL-licensed) - ✅ Uses...
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
Validates that strings conform to the ABNF syntax rules defined in RFC 3987 for Internationalized Resource Identifiers (IRIs), using Lark-based parsing to check syntax only—not semantic rules like Unicode normalization or BiDi constraints.
Low friction: pure-Python wheel with a single runtime dependency (lark). Maintenance signal is aging—last release was 391 days ago and the repository has minimal activity (1 star), though it remains unarchived and the project is still in Alpha status.
MIT license permits use in both open source and proprietary software without restriction. The package explicitly avoids depending on the GPL-licensed rfc3987 package, making it suitable for commercial deployments.
Usage
pip install rfc3987-syntax
from rfc3987_syntax import is_valid_syntax_iri
if is_valid_syntax_iri('http://github.com'):
print('Valid IRI syntax')
Requires Python 3.9 or later.
Verdict: A lightweight, permissively licensed RFC 3987 syntax validator suitable for projects needing IRI validation without GPL entanglement. Low install friction and no known vulnerabilities, but aging maintenance (391 days since last release, Alpha status) and minimal community adoption warrant caution for production use. Best suited for niche use cases where syntax-only validation suffices and semantic rules are handled separately.
Needs verification
- Whether the Lark dependency's own security posture and update frequency meet your project's maintenance expectations.
- Whether syntax-only validation (without Unicode normalization, BiDi, or port-range checks) is sufficient for your IRI handling requirements.
- Real-world test coverage and bug-report history beyond the fact sheet's visibility.
Similar packages
permissive · top 1,000 on PyPI
rfc3986permissive · top 1,000 on PyPI
scramppermissive · top 1,000 on PyPI
jmespathpermissive · top 100 on PyPI
rfc3986-validatorpermissive · top 1,000 on PyPI
yamllintcopyleft · top 1,000 on PyPI
larkpermissive · top 1,000 on PyPI
rfc3339-validatorpermissive · top 1,000 on PyPI
uri-templatepermissive · top 1,000 on PyPI
uritemplatepermissive · top 1,000 on PyPI