$ icu_normalizer
v2.2.0MAJOR UPDATEAPI for normalizing text into Unicode Normalization Forms
Latest Update Summary
Crate
Name: icu_normalizer New version: 2.1.0 Release date: 2025-05-07T21:21:21Z
Crate readme
Short description ICU4X provides components enabling wide range of software internationalization.
Long description ICU4X is fully implemented in the Rust programming language and aims to solve the needs of clients who wish to provide client-side internationalization for their products in resource-constrained environments. It features small and modular code, pluggable locale data, and an ECMA-402-compatible API surface for multiple programming languages and platforms, including web, iOS, Android, and more.
Features • Small and modular code • Pluggable locale data • Compatibility with multiple programming languages • ECMA-402 compatible API • Supports Rust, JavaScript, Objective-C, Java, Dart, and C++
Code Examples Add to Cargo.toml
[dependencies]
icu = "2.0.0"
Basic usage
use icu::calendar::Date;
use icu::datetime::{DateTimeFormatter, fieldsets::YMD};
use icu::locale::locale;
let dtf = DateTimeFormatter::try_new(
locale!("es").into(),
YMD::long()
)
.expect("locale should be present in compiled data");
let date = Date::try_new_iso(2020, 9, 12).expect("date should be valid");
let formatted_date = dtf.format(&date).to_string();
assert_eq!(
formatted_date,
"12 de septiembre de 2020"
);
Links • https://crates.io/crates/icu • https://icu4x.unicode.org/ • https://www.unicode.org/copyright.html • https://www.unicode.org/license.txt • https://github.com/unicode-org/icu
https://api.github.com/repos/unicode-org/icu4x/releases/217170091
Release info
Release version: 2.0
Release description
ICU4X 2.0 introduces several significant updates to the library, improving performance and usability. A key change is the introduction of preference objects, allowing the use of "preference bags" which can be derived from locales or constructed directly using type-safe enums. This change enhances efficiency when passing information to formatters. Additionally, the icu::datetime component has been completely rewritten, leading to improved performance and ease of use with the newly created icu::time component, which better manages i18n-focused date, time, and time zone representations. The foreign function interface (FFI) has also been overhauled, featuring enhanced C++ namespaces and improvements in function versioning, alongside more idiomatic implementations across all supported languages. Performance is further improved with the introduction of borrowed variants for more types, enabling certain components to compile without an allocator, making some crates compatible with #[no_std]. Lastly, all components now come with the latest updates from CLDR (47.0) and Unicode (16.0). These enhancements stem from user feedback during the 2.0 Beta phase.
Code Examples
Minor update: 2.1.1 → 2.2.0
$ DOWNLOADS TREND
$ VERSION HISTORY
$ LINKS
$ INSTALL
cargo add icu_normalizerOr add to Cargo.toml: icu_normalizer = "2.2.0"