Py-url-normalize

Jul 20, 2023

URL normalization for Python

URI Normalization function

  • Take care of IDN domains.
  • Always provide the URI scheme in lowercase characters.
  • Always provide the host, if any, in lowercase characters.
  • Only perform percent-encoding where it is essential.
  • Always use uppercase A-through-F characters when percent-encoding.
  • Prevent dot-segments appearing in non-relative URI paths.
  • For schemes that define a default authority, use an empty authority if the default is desired.
  • For schemes that define an empty path to be equivalent to a path of “/”, use “/”.
  • For schemes that define a port, use an empty port if the default is desired
  • All portions of the URI must be utf-8 encoded NFC from Unicode strings


Checkout these related ports:
  • Zyre - Framework for proximity-based peer-to-peer applications
  • Zsync - File transfer program
  • Zmap - Internet scanner
  • Zillion - Distributed computing project
  • Zerotier - Network virtualization everywhere
  • Zebra-server - Z39.50/SR server software
  • Yptransitd - Replacement for nss_ldap
  • Yggdrasil - Experimental end-to-end encrypted self-arranging IPv6 network
  • Yconalyzer - TCP Traffic Analyzer
  • Yazproxy - Powerful general purpose Z39.50/SRW/SRU proxy
  • Yaz - Z39.50/SR client and API library
  • Yaz++ - C++ toolkit for development of Z39.50v3 clients and servers
  • Yate - Yet Another Telephony Engine
  • Yaph - Yet Another Proxy Hunter (proxy scanner)
  • Yami4 - Messaging library for distributed systems