#perfect-hash #unicode #unicode-characters #name #character #run-time #compile-time

build unicode_names2_generator

Generates the perfect-hash function used by unicode_names2

6 stable releases

1.3.0 Sep 12, 2024
1.2.2 Mar 10, 2024
1.2.1 Dec 14, 2023
1.2.0 Oct 14, 2023
1.0.0 Aug 13, 2023

#828 in Text processing

Download history 18120/week @ 2024-08-26 12141/week @ 2024-09-02 14755/week @ 2024-09-09 13351/week @ 2024-09-16 14703/week @ 2024-09-23 21488/week @ 2024-09-30 8307/week @ 2024-10-07 19903/week @ 2024-10-14 13950/week @ 2024-10-21 17025/week @ 2024-10-28 7885/week @ 2024-11-04 33033/week @ 2024-11-11 33975/week @ 2024-11-18 10932/week @ 2024-11-25 28173/week @ 2024-12-02 26275/week @ 2024-12-09

99,592 downloads per month
Used in 41 crates (via unicode_names2)

MIT/Apache

30KB
651 lines

unicode_names2

Build Status

Time and memory efficiently mapping characters to and from their Unicode 16.0 names, at runtime and compile-time.

fn main() {
    println!("☃ is called {}", unicode_names2::name('')); // SNOWMAN
    println!("{} is happy", unicode_names2::character("white smiling face")); //
    // (NB. case insensitivity)
}

The maps are compressed using similar tricks to Python's unicodedata module, although those here are about 70KB (12%) smaller.

Documentation

Dependencies

~2MB
~33K SLoC