rfc3987-syntax
Helper functions to syntactically validate strings according to RFC 3987.
Decision gist · record as of 2026-08-14
Yes, if you need RFC 3987 syntax validation without GPL entanglement and are comfortable implementing semantic rules separately. The package is stable, permissively licensed, and has no known vulnerabilities. However, maintenance is aging (last release 392 days ago), so treat it as a stable utility rather than an actively developed framework. Suitable for narrow, well-defined syntax-checking tasks.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Low friction: pure Python wheel with a single runtime dependency on lark.
- Maintenance status is aging—last release 392 days ago, repository active but minimal activity (1 star).
License · maintenance · safety
MIT (permissive) — MIT license permits use in both open source and proprietary software without restriction. No copyleft obligations or commercial licensing concerns.
last release 2025-07-18 (392 days) · last repo commit 2025-07-18 · 1 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 37,698,453 downloads/mo, #723 on PyPI
Alternatives
Verify before relying
pip install rfc3987-syntax
from rfc3987_syntax import is_valid_syntax_iri
if is_valid_syntax_iri('http://github.com'):
print('Valid IRI syntax')
else:
print('Invalid IRI syntax')- Whether the Lark parser performance is acceptable for high-volume IRI validation workloads.
- Completeness of ABNF grammar coverage relative to RFC 3987 final specification.
- Whether the parse tree output is suitable for downstream semantic validation beyond syntax.
What it is and what it does
rfc3987-syntax is a lightweight Python module that validates whether strings conform to the ABNF syntax rules defined in RFC 3987, the IETF standard for Internationalized Resource Identifiers. It uses Lark, an EBNF-based parser, to check syntax compliance against the RFC 3987 grammar, which extends RFC 3986 URI syntax to support Unicode characters and internationalized domain names. The module provides both a general-purpose validator and term-specific helper functions for common IRI forms (iri, iri_reference, absolute_iri), plus access to the underlying parse tree for further processing.
Critically, this package validates syntax only—it does not enforce RFC 3987's semantic rules, such as Unicode Normalization Form C, bidirectional text constraints, port number ranges, IPv6 compression validity, or context-aware percent-encoding. Those constraints must be implemented separately by the caller. The module is intentionally narrow in scope and permissively licensed (MIT) to avoid GPL entanglement with the older rfc3987 package.
Use it for
- Check whether user-supplied strings are syntactically valid IRIs before passing them to downstream processing or storage systems.
- Parse IRI strings into Lark parse trees to extract and validate individual components (scheme, authority, path, query, fragment) for custom semantic validation.
- Validate IRI references and relative IRIs in configuration files, API responses, or link extraction workflows.
- Build IRI-aware tools or libraries that need permissive licensing and do not depend on GPL-licensed packages.
- Implement RFC 3987 syntax compliance checks in web scrapers, link validators, or URI normalization pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need RFC 3987 syntax validation without GPL entanglement and are comfortable implementing semantic rules separately.
The package is stable, permissively licensed, and has no known vulnerabilities. However, maintenance is aging (last release 392 days ago), so treat it as a stable utility rather than an actively developed framework. Suitable for narrow, well-defined syntax-checking tasks.
Install
rfc3987-syntax on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency on lark. Maintenance status is aging—last release 392 days ago, repository active but minimal activity (1 star). Suitable for stable, narrow-scope use but not under active development.
Requires Python 3.9 or later.
License in practice
MIT license permits use in both open source and proprietary software without restriction. No copyleft obligations or commercial licensing concerns.
Quickstart
pip install rfc3987-syntax
from rfc3987_syntax import is_valid_syntax_iri
if is_valid_syntax_iri('http://github.com'):
print('Valid IRI syntax')
else:
print('Invalid IRI syntax')
Verify before relying
- Whether the Lark parser performance is acceptable for high-volume IRI validation workloads.
- Completeness of ABNF grammar coverage relative to RFC 3987 final specification.
- Whether the parse tree output is suitable for downstream semantic validation beyond syntax.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagelark |
| Maintenance | Aging 392 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 37,698,453 / month, #723 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.9Topic :: Scientific/EngineeringTopic :: Software DevelopmentTopic :: Utilities |
Evidence: rfc3987_syntax-1.1.0-py3-none-any.whl
Tags
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 3987 IRI syntax validator”
- rfc3987-syntaxValidates that strings conform to the ABNF syntax rules defined in…
- rfc3987Provides RFC 3986 and RFC 3987 compliant regular expressions and…
- hyperlinkHyperlink provides an immutable, RFC 3986/3987-compliant URL class…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also abnf · rfc3987 · rfc3986 · rfc3986-validator · emval · hyperlink · lark-parser · lark · rfc3339-validator · uritools