18 stable releases

2.2.0 Apr 1, 2026
2.1.2 Feb 9, 2026
2.1.1 Oct 28, 2025
2.0.2 May 27, 2025
0.6.0 May 17, 2022

#668 in Internationalization (i18n)

Download history 5027/week @ 2025-12-27 6605/week @ 2026-01-03 6837/week @ 2026-01-10 7250/week @ 2026-01-17 6973/week @ 2026-01-24 7147/week @ 2026-01-31 7747/week @ 2026-02-07 6140/week @ 2026-02-14 8622/week @ 2026-02-21 9434/week @ 2026-02-28 9767/week @ 2026-03-07 8284/week @ 2026-03-14 10130/week @ 2026-03-21 7469/week @ 2026-03-28 8459/week @ 2026-04-04 8660/week @ 2026-04-11

35,904 downloads per month
Used in 9 crates (2 directly)

Unicode-3.0

6.5MB
90K SLoC

Rust 63K SLoC // 0.0% comments JavaScript 23K SLoC // 0.3% comments TypeScript 3.5K SLoC // 0.7% comments

icu_capi crates.io

This crate contains the extern "C" FFI for ICU4X, as well as the Diplomat-generated C and C++ headers. ICU4X is also available for JavaScript/TypeScript through npm, and for Dart through pub.dev.

🔗 See the ICU4X website for FFI docs and examples

This crate is no_std-compatible, but requires an allocator. If you wish to use it in no_std mode, you can either enable the looping_panic_handler and libc_alloc Cargo features, or write a wrapper crate that defines an allocator/panic handler.

🚧 While the types in this crate are public, APIs from this crate are not intended to be used from Rust and as such this crate may unpredictably change its Rust API across compatible semver versions.

The extern "C" APIs exposed by this crate, while not directly documented, are stable within the same major semver version, as are the bindings in the bindings folder.

More Information

For more information on development, authorship, contributing etc. please visit ICU4X home page.

Dependencies

~1.3–6.5MB
~81K SLoC