23 releases (stable)
| 2.1.2 | Dec 9, 2025 |
|---|---|
| 2.1.1 | Oct 28, 2025 |
| 2.0.1 | May 19, 2025 |
| 2.0.0-beta2 | Feb 26, 2025 |
| 0.4.0 | Nov 2, 2021 |
#3 in Internationalization (i18n)
30,179,533 downloads per month
Used in 48,711 crates
(40 directly)
1.5MB
25K
SLoC
icu_properties 
Definitions of Unicode Properties and APIs for retrieving property data in an appropriate data structure.
This module is published as its own crate (icu_properties)
and as part of the icu crate. See the latter for more details on the ICU4X project.
APIs that return a CodePointSetData exist for binary properties and certain enumerated
properties.
APIs that return a CodePointMapData exist for certain enumerated properties.
Examples
Property data as CodePointSetDatas
use icu::properties::{CodePointSetData, CodePointMapData};
use icu::properties::props::{GeneralCategory, Emoji};
// A binary property as a `CodePointSetData`
assert!(CodePointSetData::new::<Emoji>().contains('🎃')); // U+1F383 JACK-O-LANTERN
assert!(!CodePointSetData::new::<Emoji>().contains('木')); // U+6728
// An individual enumerated property value as a `CodePointSetData`
let line_sep_data = CodePointMapData::<GeneralCategory>::new()
.get_set_for_value(GeneralCategory::LineSeparator);
let line_sep = line_sep_data.as_borrowed();
assert!(line_sep.contains('\u{2028}'));
assert!(!line_sep.contains('\u{2029}'));
Property data as CodePointMapDatas
use icu::properties::CodePointMapData;
use icu::properties::props::Script;
assert_eq!(CodePointMapData::<Script>::new().get('🎃'), Script::Common); // U+1F383 JACK-O-LANTERN
assert_eq!(CodePointMapData::<Script>::new().get('木'), Script::Han); // U+6728
More Information
For more information on development, authorship, contributing etc. please visit ICU4X home page.
Dependencies
~0.4–1.1MB
~22K SLoC