The ICU4X Technical Committee is happy to announce ICU4X 2.0, a major update to our modular, portable, and secure i18n library.
Important changes since ICU4X 1.5 include:
1. Preference Objects: A new paradigm for Locale and Preferences resolution in component constructors. The new architecture allows for rich management of user preferences coming from Locale and Preference objects.
2. Date, Time, and Time Zone Rewrite: The icu::datetime component underwent a complete rewrite with APIs that improve performance and make it easier to do the right thing. The new icu::time component replaces icu::timezone and handles i18n-focused date, time, and time zone representations.
3. FFI Overhaul: C++ namespaces, improvements to function versioning, and idiomatic improvements in all languages, such as getters/setters, iterators, and constructors.
4. Borrowed variants: More types have separate owned and borrowed variants, which improves performance. This also enables more components to be compiled without an allocator, making some crates fully #[no_std].
5. Compiled data updated: All components ship with the latest versions of CLDR (47.0) and Unicode (16.0).
Thanks to everyone who tried the 2.0 Beta releases. We have used your feedback to improve the 2.0 release.
Happy coding!
Shane and the ICU4X Team