title: IPv6 address validation and canonicalization
body: <p>What libs have you used for that?  How compatible are they with one another?  Or did you write your own parsing routine?</p>
  
  <p>I'm particularly interested in mutually-compatible implementations for Java, C++, Python, and JavaScript, which support:</p>
  
  <ul>
  <li>zero compression ("<code>::</code>")</li>
  <li>IPv4-mapped addresses ("<code>::ffff:123.45.67.89</code>")</li>
  <li>canonicalization (including to the short form, for human readability)</li>
  <li>CIDR-style netmasks (like "<code>/64</code>" at the end)</li>
  </ul>