All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2026-06-24
- Optional
serdesupport:Serialize/DeserializeforCountryCode,iso3166_2::Subdivisionandiso3166_3::CountryCode3, behind the newserdefeature. Values serialize to their canonical code string (alpha-2 / subdivision code / alpha-4) and deserialize case-insensitively via the existingfrom_*lookups. Enable withcargo add rust_iso3166 -F serde. Numeric-code (de)serialization is not supported. (#13) clifeature gating the command-line tool; the binary is now namediso3166. (#14)scripts/build-wasm.shandscripts/publish.shfor building the WebAssembly/npm package and releasing to crates.io + npm.LICENSEfile (Apache-2.0).
- Breaking:
CountryCode.numericis nowu16instead ofi32(also thenumeric()getter, thefrom_numericparameter, and theALL_NUMERICslice). ISO 3166-1 numeric codes are non-negative and at most999, sou16models the domain precisely. (#9) - Data refreshed against iso-codes
v4.20.1 (2026-01-01):
- ISO 3166-1: alpha-2/alpha-3/numeric codes match iso-codes exactly; country
names updated (
Turkey→Türkiye,Netherlands→Netherlands (Kingdom of the)) and the governmental-qualifier names unified to the ISO OBP parenthesised form (e.g.Korea, Republic of→Korea (Republic of)). - ISO 3166-2: subdivisions fully refreshed from
iso_3166-2.json. Removed 50 non-standard self-referential entries (e.g.HK-HK,PR-PR,XC-*); 55 countries' subdivision sets changed (e.g. Latvia 119 → 43, Greece 65 → 14, Estonia 15 → 94, Iceland 9 → 72). - ISO 3166-3: former-country names aligned to
iso_3166-3.json(e.g.Gilbert Islands→Gilbert and Ellice Islands). - Removed stray Wikipedia artifacts (footnote markers, language-variant and code-transition brackets) from all names.
- ISO 3166-1: alpha-2/alpha-3/numeric codes match iso-codes exactly; country
names updated (
- Breaking: upgraded
phffrom 0.11 to 0.14. Asphf::Mapappears in the public API (the*_MAPconstants), this is a public-dependency major bump. - Breaking: the CLI is no longer built by default — build/install it with
--features cli.prettytable-rsis now an optional dependency pulled in only by that feature, so default library builds no longer depend on it. (#14) - Breaking: minimum supported Rust version is now 1.85 (required by
phf0.14 / edition 2024 in the dependency tree). - Refreshed dependency floors:
serde_json1.0.150 (dev),wasm-bindgen0.2.100,js-sys0.3.77,wasm-bindgen-test0.3.50 (dev). - The
serdeimpls live in the code generator templates (scripts/*.py) and thesrc/*.rsfiles are regenerated from them, so the feature survives future regeneration.
- Silenced
unexpected_cfgswarnings for the customdirect_wasmcfg via a[lints.rust]check-cfgentry.