Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 4.39 KB

20210427_ICU4X_02_Release.md

File metadata and controls

60 lines (45 loc) · 4.39 KB

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.

Foregin 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 funtionality intended for 1.0 release and the capabilities to bring ICU to FFI targets.

For details, please see CHANGELOG.