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