Rust_icu

screenshot of Rust_icu

rust_icu: rust bindings for ICU (International Components for Unicode) library

Overview

rust_icu is a library of low-level native Rust language bindings for the International Components for Unicode (ICU) library for C. It aims to provide a functional wrapper for ICU in Rust, which can be used to advance the state of the art in Rust's ICU support. The repository is organized as a cargo workspace of Rust crates, with each crate corresponding to a specific header in the ICU4C library's C API.

Features

  • rust_icu: Top-level crate that includes all the functionality available for use.
  • rust_icu_common: Commonly used low-level wrappings of the bindings.
  • rust_icu_intl: Implements the ECMA 402 recommendation APIs.
  • rust_icu_sys: Low-level bindings code.
  • rust_icu_ubrk: Support for text boundary analysis, implementing the ubrk.h C API header.
  • rust_icu_ucal: ICU Calendar functionality, implementing the ucal.h C API header.
  • rust_icu_ucol: Collation support, implementing the ucol.h C API header.
  • rust_icu_udat: ICU date and time functionality, implementing the udat.h C API header.
  • rust_icu_udata: ICU binary data functionality, implementing the udata.h C API header.
  • rust_icu_uenum: Implements ICU enumerations, mainly UEnumeration and friends, implementing the uenum.h C API header.
  • rust_icu_uformattable: Locale-sensitive list formatting support, implementing the uformattable.h C API header.

Summary

rust_icu is a library of low-level Rust language bindings for the ICU library. It provides a functional wrapper for ICU in Rust, allowing for easier use of Unicode algorithms without taking on additional dependencies. The repository is organized as a cargo workspace with multiple crates, each corresponding to a specific header in the ICU4C library's C API. By using rust_icu, projects in the Rust ecosystem can advance the state of the art in ICU support and potentially transition to an all-Rust implementation in the future.