Skip to content

Comments

Replace simple_uri_template with ponylang/uri#66

Merged
SeanTAllen merged 3 commits intomainfrom
replace-simple-uri-template
Feb 19, 2026
Merged

Replace simple_uri_template with ponylang/uri#66
SeanTAllen merged 3 commits intomainfrom
replace-simple-uri-template

Conversation

@SeanTAllen
Copy link
Member

Replace the internal simple_uri_template subpackage with the ponylang/uri library (v0.1.0), which provides a complete RFC 6570 implementation with proper per-variable percent encoding.

The old subpackage only handled path segment expansion ({/var}) and had known limitations around encoding safety for special characters. All 19 call sites across 8 source files have been migrated to the new URITemplateParse / URITemplate / URITemplateVariables API.

Also fixes conflicting FFI declarations between pagination_link_parser/unreachable.pony and uri/template/_unreachable.pony by updating our @exit parameter type from U8 to I32 and stream pointer types from Pointer[U8] to Pointer[None] to match the correct C types.

The simple_uri_template subpackage was a minimal PEG-based URI template
expander that only handled RFC 6570 path segment expansion, with known
limitations around encoding safety and incomplete RFC coverage. The
ponylang/uri library provides a complete RFC 6570 implementation with
proper per-variable percent encoding and zero external dependencies.

Also fixes conflicting FFI declarations for @EXIT, @fprintf, and
@pony_os_stderr between pagination_link_parser/unreachable.pony and
uri/template/_unreachable.pony by updating our declarations to use the
correct C types (I32 for exit status, Pointer[None] for FILE* streams).
@SeanTAllen SeanTAllen added the changelog - changed Automatically add "Changed" CHANGELOG entry on merge label Feb 19, 2026
@ponylang-main ponylang-main added the discuss during sync Should be discussed during an upcoming sync label Feb 19, 2026
Internal-only change; no user-facing impact.
@SeanTAllen SeanTAllen removed the changelog - changed Automatically add "Changed" CHANGELOG entry on merge label Feb 19, 2026
@SeanTAllen SeanTAllen merged commit 5b9afa2 into main Feb 19, 2026
8 checks passed
@SeanTAllen SeanTAllen deleted the replace-simple-uri-template branch February 19, 2026 01:42
@ponylang-main ponylang-main removed the discuss during sync Should be discussed during an upcoming sync label Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants