Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 2.04 KB

File metadata and controls

50 lines (41 loc) · 2.04 KB

v1.1

v1.2

  • strict IP without percent-encoding
  • strict UTF8 percent-encoding on host, path, query, userinfo, fragment (not scheme)
  • performances on a par with net/url.URL
  • reduce # allocs String() ? (~ predict size)
  • more nitpicks - check if the length checks on DNS host name are in bytes or in runes => bytes
  • DefaultPort(), IsDefaultPort()
  • fix scheme tolerance to be on ASCII only
  • document the choice of a strict % escaping policy regarding char encoding (UTF8 mandatory)
  • [] handle empty fragment, empty query
  • [] IRI ucs charset compliance (att: perf challenge)
  • [] Support IRI iprivate in query
  • [] normalizer

v2.0.0

  • V2 zero alloc, no interface, fluent builder with inner error checking
  • [] doc: complete the librarian/archivist work on specs, etc + FAQ to clarify the somewhat arcane world of this set of RFCs.
  • [] V2 net/url.URL interface-feeling (more methods)

Future/Maybe

  • [] simplify: readability vs performance
  • [] investigate - nice? uses whatwg errors terminology

Notes

ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
                  / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
                  / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
                  / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
                  / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
                  / %xD0000-DFFFD / %xE1000-EFFFD
iprivate       = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD

		// TODO: RFC6874
		//  A <zone_id> SHOULD contain only ASCII characters classified as
   		// "unreserved" for use in URIs [RFC3986].  This excludes characters
   		// such as "]" or even "%" that would complicate parsing.  However, the
   		// syntax described below does allow such characters to be percent-
   		// encoded, for compatibility with existing devices that use them.