$ icu_normalizer

v2.2.0MAJOR UPDATE

API for normalizing text into Unicode Normalization Forms

Downloads: 254.1M
Recent: 86.9M
Versions: 19
Updated: April 1, 2026

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"
);

Linkshttps://crates.io/crates/icuhttps://icu4x.unicode.org/https://www.unicode.org/copyright.htmlhttps://www.unicode.org/license.txthttps://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

113.7M254.1M

$ VERSION HISTORY

v2.2.0April 1, 2026
v2.1.1October 29, 2025
v2.1.1October 28, 2025
v2.1.0October 28, 2025
v2.0.0May 7, 2025

$ LINKS

$ INSTALL

cargo add icu_normalizer

Or add to Cargo.toml: icu_normalizer = "2.2.0"