9 stable releases

1.4.1 Feb 15, 2024
1.4.0 Nov 17, 2023
1.3.2 Oct 3, 2023
1.3.0 Sep 24, 2023
0.6.0 May 17, 2022

#372 in Internationalization (i18n)

Download history 116/week @ 2024-02-12 18/week @ 2024-02-19 29/week @ 2024-02-26 6/week @ 2024-03-04 41/week @ 2024-03-11 35/week @ 2024-04-01 3/week @ 2024-04-08 18/week @ 2024-04-15

56 downloads per month
Used in 3 crates

Custom license

3MB
43K SLoC

Rust 32K SLoC // 0.0% comments JavaScript 8K SLoC // 0.0% comments TypeScript 2K SLoC // 0.7% comments C++ 1K SLoC // 0.0% comments C 428 SLoC // 0.1% comments Python 55 SLoC // 0.6% comments Batch 52 SLoC // 0.1% comments

icu_capi crates.io

This crate contains the source of truth for the Diplomat-generated FFI bindings. This generates the C, C++, JavaScript, and TypeScript bindings. This crate also contains the extern "C" FFI for ICU4X.

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 exposed under the cpp/ and js/ folders.

This crate may still be explored for documentation on docs.rs, and there are generated language-specific docs available as well. C++ has sphinx docs in cpp/docs/, and the header files also contain documentation comments. The JS version has sphinx docs under js/docs, and the TypeScript sources in js/include are compatible with tsdoc.

This crate is no_std and will not typically build as a staticlib on its own. If you wish to link to it you should prefer using icu_capi_staticlib, or for more esoteric platforms you may write a shim crate depending on this crate that hooks in an allocator and panic hook.

More information on using ICU4X from C++ can be found in our tutorial.

More Information

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

Dependencies

~2–13MB
~107K SLoC