All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.0] — April 16th, 2026

Highlights

Initial release of Localize.PhoneNumber, an Elixir NIF wrapper around Google's libphonenumber C++ library. The library provides locale-aware phone number handling with territory defaults powered by Localize.

  • ParsingLocalize.PhoneNumber.parse/2 accepts phone numbers in national or international format. Territory defaults are resolved from an explicit :territory option, a :locale option, or automatically from Localize.get_locale/0.

  • FormattingLocalize.PhoneNumber.to_string/2 formats parsed numbers as E.164, international, national, or RFC 3966 strings. Defaults to :international format.

  • Validationvalid?/1, valid_for_territory?/2, and possible?/1 check whether a parsed number is valid, valid for a given territory, or has a plausible length.

  • Type detectiontype/1 classifies a number as :mobile, :fixed_line, :toll_free, :premium_rate, :voip, and other categories.

  • Territory resolutionterritory/1 returns the ISO 3166-1 alpha-2 territory code for a parsed number.

See the README and the Parsing and Formatting Guide for full documentation and examples.