The ICU4X Technical Committee is happy to announce ICU4X 2.2, an update to our modular, portable, and secure i18n library.
ICU4X is Unicode's modern, lightweight, portable, and secure i18n library. Built from the ground up, its binary size and memory usage footprint is 50-90% smaller than ICU4C. It is memory-safe, written in Rust with interfaces into C++, JavaScript, Dart, TypeScript, Kotlin — with other languages in the timeline. Mozilla Firefox, Google Chrome, Google Pixel Watch, core Android, numerous Flutter apps, and more clients are already using ICU4X.
Important changes in ICU4X 2.2 include:
1. Latest i18n data: This release includes an update to
CLDR 48.2 and support for TZDB 2026a.
2. New and improved icu_calendar: This release contains new APIs in
icu_calendar, as well as some behavior changes in
icu_calendar; see the migration notes
on GitHub.
a. Datetime arithmetic: It is now possible to add and subtract dates.
b. More flexible date construction: Build dates from all kinds of constituent data: extended years, era years, ordinal months, month codes, etc., with support for different kinds of overflow handling.
c. Typed months: The new Month type replaces month codes in a type safe way.
d. Experimental third-party crate integration: We now support converting and formatting types from the jiff, chrono, and time crates. See icu_datetime::input::third_party. We’re not yet sure if these integrations should live in ICU4X, in the third party crates, or some adapter crate. We welcome your feedback! e. Changes to Japanese and Hijri calendars: We no longer support pre-Meiji eras because CLDR removed them, and we now always use Umm al-Qura data for simulated Hijri. See the migration notes on GitHub for more details.
3. Experimental Kotlin Bindings: We now have Kotlin bindings for ICU4X (found under ffi/mvn), with the same set of supported APIs as our other cross-language bindings.
4. Experimental features:
a. Display names: Adds new internal data layout exposed via RegionDisplayName and ScriptDisplayName APIs. The old data layout, optimized for loading multiple names at once, is moved into the multi module. Please share feedback on our
tracking issue.
b. Compact decimal formatter: Please share feedback in preparation for stabilization in a future release. c. ML segmentation: Initial code for RAdaBoost word segmenter for Chinese and CNN word segmenter for Thai.
5. Better hour cycles: Adds support for Clock12 and Clock24 in datetime formatting.
As before, the Rust crate is available at
crates.io, with documentation at
docs.rs.
----------------------------------------------
Adopt a Character and Support Unicode’s Mission
Looking to give that special someone a special something?
Or maybe something to treat yourself?
🕉️💗🏎️🐨🔥🚀爱₿♜🍀
Adopt a character or emoji to give it the attention it deserves, while also supporting Unicode’s mission to ensure everyone can communicate in their own languages across all devices.
Each adoption includes a digital badge and certificate that you can proudly display!
Have fun and support a good cause
You can also donate funds or gift stock
