RFC 6874 IPv6 Zone ID Support
Summary
Implement RFC 6874 IPv6 Zone Identifiers in URIs.
Background
IPv6 link-local addresses can include zone identifiers (e.g., fe80::1%eth0). RFC 6874 defines how to encode these in URIs using %25 encoding.
Requirements
- Parse zone ID from IPv6 address (e.g., [fe80::1%25eth0])
- Separate zone_id field in parsed result
- Validate zone ID characters
- Proper encoding/decoding of zone ID
Example
const result = try uri.parse("http://[fe80::1%25eth0]:8080/");
result.host // "[fe80::1%25eth0]"
result.ipv6_zone // "eth0" (optional new field)
Acceptance Criteria
- Parse URIs with IPv6 zone IDs
- Format URIs with zone IDs correctly
- Tests for various zone ID formats
- Handle %25 encoding properly
Related
- RFC 6874: https://www.rfc-editor.org/rfc/rfc6874