# ICU4X 0.2 Released

We are excited to announce the release of [Unicode® ICU4X 0.2].

The revision improves completeness of the components introduced in [ICU4X 0.1] and introduces a number of lower level utilities.

## Components

In 0.2, ICU4X introduces [`FixedDecimalFormat`] which serves as a minimal and lightweight number format API.
This version improves [`DateTimeFormat`] adding initial support for [time zones], [component bags] and [day periods]. A new [`LocaleCanonicalizer`] component has been added to support [`Locale`] data driven operations. A third improved component is [`PluralRules`] which has gained support for the `E` operand.

## Foreign Function Interface

ICU4X [Foreign Function Interface] (a layer which allows using ICU4X from other programming languages) bindings include a new [`C` API] prototype. While not part of the release itself, it serves as a validation of the core API model and the team expects it to be published alongside ICU4X in the next release.

## Utilities

With a small set of core components maturing, the project is starting to focus more on the features we want to develop for all components such as strong FFI support and flexible data management.

For that purpose, we have started building a number of lower level utilities focused on bringing high performance data structures and algorithms.

To minimize the size of our [WebAssembly] binaries we added [`Writeable`], which introduces a lightweight alternative to [`std::fmt::Display`] and [`LiteMap`], which adds a [`std::collections::HashMap`] replacement that uses [`binary_search`] instead of a hash function.
[`ZeroVec`] is a utility similar to [`std::borrow::Cow`] which allows us to bring zero-copy deserialization of lists.
[`FixedDecimal`] and [`ICU Pattern`] are two utilities that introduce lower level simple operations on numbers and ICU patterns.

### Summary

ICU4X 0.2 comes with more feature-complete components, new utilities and [CLDR 39.0] support.
It is an unstable release, meaning that the API is in flux and functionality is not complete.

We're looking for [testers] and [contributors] interested in working with us on completing the functionality intended for [1.0 release] and the capabilities to bring ICU to FFI targets.

For details, please see [CHANGELOG](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md).

[Unicode® ICU4X 0.2]: https://github.com/unicode-org/icu4x
[ICU4X 0.1]: ./20201015_ICU4X_Project_Announcement.md
[`FixedDecimalFormat`]: https://unicode-org.github.io/icu4x/rustdoc/icu/decimal/index.html
[`DateTimeFormat`]: https://unicode-org.github.io/icu4x/rustdoc/icu/datetime/index.html
[time zones]: https://unicode-org.github.io/icu4x/rustdoc/icu/datetime/zoned_datetime/struct.ZonedDateTimeFormat.html
[component bags]: https://unicode-org.github.io/icu4x/rustdoc/icu/datetime/options/components/index.html
[day periods]: https://unicode.org/reports/tr35/tr35-dates.html#Day_Period_Rule_Sets
[`LocaleCanonicalizer`]: https://unicode-org.github.io/icu4x/rustdoc/icu/locale_canonicalizer/index.html
[`Locale`]: https://unicode-org.github.io/icu4x/rustdoc/icu/locid/struct.Locale.html
[`PluralRules`]: https://unicode-org.github.io/icu4x/rustdoc/icu/plurals/index.html
[`C` API]: https://github.com/unicode-org/icu4x/tree/main/components/capi 
[`Writeable`]: https://unicode-org.github.io/icu4x/rustdoc/writeable/index.html
[`std::fmt::Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.html
[`LiteMap`]: https://unicode-org.github.io/icu4x/rustdoc/litemap/index.html
[`std::collections::HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html
[`binary_search`]: https://doc.rust-lang.org/std/primitive.slice.html#method.binary_search
[`ZeroVec`]: https://unicode-org.github.io/icu4x/rustdoc/zerovec/index.html
[`std::borrow::Cow`]: https://doc.rust-lang.org/std/borrow/enum.Cow.html
[`FixedDecimal`]: https://unicode-org.github.io/icu4x/rustdoc/fixed_decimal/index.html
[`ICU Pattern`]: https://unicode-org.github.io/icu4x/rustdoc/icu_pattern/index.html
[`CLDR 39.0`]: https://cldr.unicode.org/index/downloads/cldr-39
[testers]: https://github.com/unicode-org/icu4x/blob/main/tutorials/intro.md
[contributors]: https://github.com/unicode-org/icu4x/blob/main/CONTRIBUTING.md
[1.0 release]: https://github.com/unicode-org/icu4x/blob/main/documents/process/roadmap.md
[Foreign Function Interface]: https://en.wikipedia.org/wiki/Foreign_function_interface
[WebAssembly]: https://webassembly.org/
