litemap
A key-value Map implementation based on a flat, sorted Vec.
0.8.3
515M downloads/mo
#203 most downloaded on crates.io
unicode-org/icu4x
What this package is like to depend on
Last release 10 days ago
13 Aug 2026
Ships fairly regularly
a new release about every 4 months
Some releases are documented
notes for 7 of 20 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
20 releases · first in 2021
3 releases in the last 12 months
see the full history below
Release timeline
20 releases · Feb 2021 to Aug 2026Releases
latest 20-
0.8.313 Aug 2026Release notes
Open source →Discovered and reported by @Shnatsel
These impls were backwards and unsound.
This is technically a breaking change, however if you had code that
relied upon this then it was basically guaranteed to be unsound.Changelog: N/A
(This contains its own changelog addition as this is an out of cycle
yoke release) -
0.8.201 Apr 2026Nothing published for this version
-
0.8.128 Oct 2025Nothing published for this version
-
0.8.007 May 2025Nothing published for this version
-
0.7.526 Feb 2025Nothing published for this version
-
0.7.423 Nov 2024Nothing published for this version
-
0.7.328 May 2024Nothing published for this version
-
0.7.216 Nov 2023Nothing published for this version
-
0.7.122 Sep 2023Nothing published for this version
-
0.7.013 Apr 2023Nothing published for this version
-
0.6.126 Jan 2023Nothing published for this version
-
0.6.026 Sep 2022Release notes
Open source →- General data model
- Non-exhaustive errors for locid, calendar, decimal, plurals (unicode-org#1792, unicode-org#1793)
- Rename "serialize" feature to "serde" (unicode-org#1797)
- Turn all errors into Copy types (unicode-org#1657)
- Components
calendar:- Coptic, Indian and Ethiopian calendars (unicode-org#1660, unicode-org#1715, unicode-org#1779)
- Calendar arithmetic (unicode-org#1614)
datetime:- Formatting for fractional seconds (unicode-org#1813, unicode-org#1801)
- Support for day of week in month ('F') (unicode-org#1770)
- Custom fallbacking for TimeZoneFormatter (unicode-org#1591)
- Support for week-of-month (unicode-org#1468)
- Bug fix to get_best_available_format_pattern skeleton matching logic (unicode-org#1549)
decimal: No updateslocale_canonicalizer:- ZeroCopy support (unicode-org#1760, unicode-org#1777)
locid:- Simplified language representation (unicode-org#1695)
- Region, Script and Variant subtags ULE (unicode-org#1696)
plurals:- Update data model to use
ZeroVec(unicode-org#1240)
- Update data model to use
properties:- Bidi support (unicode-org#1716, unicode-org#1784)
- Utilities
codepointtrie:- Use 0 for error value for Rust out-of-bounds for primitive trie value types (unicode-org#1804)
crlify: New util for line ending conversionsdeduplicating_array: No updatesfixed_decimal:- Improvements to FixedDecimal f64 APIs (unicode-org#1718)
litemap:- Pluggable LiteMap backends (unicode-org#1769)
pattern: No updatesuniset: No updateswriteable: No updatesyoke: No updateszerofrom: No updateszerovec:- ZeroVec derive improvements (unicode-org#1780)
- Support non-Ord values in ZeroMap (unicode-org#1743)
- Add OptionULE and OptionVarULE (unicode-org#1736)
- Rename ZeroVec::from_slice and add new method for const-constructed ZeroSlice (unicode-org#1728)
- Treat ZeroMap sort order as an optional invariant (unicode-org#1727)
- Add ZeroMap::get_copied_by (unicode-org#1722)
- Generalize PairULE to support longer tuples (unicode-org#1721)
- Add more AsULE impls for primitives (unicode-org#1672)
- Add cast methods to ZeroVec and ZeroSlice (unicode-org#1651)
- Add RawBytesULE::slice_from_byte_slice (unicode-org#1648)
- Create façades for ZeroVec types, hide internal code organization modules (unicode-org#1629)
- Add zerovec::skip_kv and zerovec::skip_ord attributes, as well as generalized attribute handling framework (unicode-org#1613)
- Rename as_unaligned to to_unaligned (unicode-org#1619)
- FFI:
- Updating to Diplomat 0.3
- Making testdata an optional FFI dep (unicode-org#1820)
- Split out capi targets: make separate freertos, staticlib, and cdylib crates as targets (unicode-org#1747)
- Experimental:
crabbake: Initial version of baked data provider (unicode-org#1825)segmenter:- Support production-ready data provider for segmenters (unicode-org#1652)
- Implement dictionary based segmenter for line segmenter. (unicode-org#1644)
- Wire DataProvider into UAX29 segmenters (unicode-org#1627)
- Move UAX#14 defines to line.toml (unicode-org#1568)
- Add segmenter factories to generate UAX29 iterators (unicode-org#1602)
- General data model
-
0.5.004 Aug 2022Release notes
Open source →- General data model
DataPayloadno longer needs a lifetime (unicode-org#1297, unicode-org#1279)- Re-write DataKey (unicode-org#1511)
- Rewrite ErasedDataProvider as AnyProvider (unicode-org#1495)
- Add EitherProvider and rename IterableDataProviderCore to IterableProvider (unicode-org#1455)
- Change DataRequest to be borrowed in BufferProvider (unicode-org#1416)
- Replace SerdeDeDataProvider with BufferProvider (unicode-org#1369, unicode-org#1384)
- Components
calendar:- Julian, Japanese, and Buddhist calendars (unicode-org#1351, unicode-org#1394, unicode-org#1305)
DateTimeFormatintegration (unicode-org#1339)- Bugfix around arithmetic (unicode-org#1352)
datetime:- Week-of-year support (unicode-org#1206)
DateTimeFormat::resolve_components()(unicode-org#1362)- Era formatting (unicode-org#1346)
TimeZoneFormatterConfig(unicode-org#1256)- New data model for organizing calendar data (unicode-org#1300)
- Bugfix around missing localized strings in time zone data (unicode-org#1405)
decimal: No updateslocale_canonicalizer:- Bugfix in maximization (unicode-org#1171)
- Update data model to use
LiteMap(unicode-org#1275)
locid: No updatesplurals:- Update data model to use
ZeroVec(unicode-org#1240)
- Update data model to use
properties:- Rename resource key category for properties (unicode-org#1406)
- Rename enums for
General_Category(unicode-org#1355) - Implement the
Canonical_Combining_Classproperty (unicode-org#1347) - Implement
Script_Extensionsproperty (unicode-org#1353) - Add
General_Categorypredicate functions (unicode-org#1310) - Implement
Grapheme_Cluster_Break,Word_Break, andSentence_BreakUnicode properties (unicode-org#1233)
- Utilities
codepointtrie: No changesdeduplicating_array: New utility for efficient serialized representation of data with duplicatesfixed_decimal:- Padding and truncation APIs (unicode-org#1482, unicode-org#1507, unicode-org#1195)
- Add double-to-decimal via ryū (unicode-org#1217)
- Handle exponents in
FixedDecimal::from_str()(unicode-org#1265)
litemap:- Add
LiteMap::get_indexed()andLiteMap::find_index() - Handle serialization of tuples (etc) in litemaps (unicode-org#1306)
- Add
pattern: No updatesuniset: No updateswriteable:- Adding parts functionality to
Writeable(unicode-org#1438) - Change
Writeable::writeable_to_stringto return a Cow (unicode-org#1452) - Implementing
Writeablefor all integers (unicode-org#1408) - Making
writeable::LengthHinta range (unicode-org#1400) - Simplifying
assert_writeable_parts_eqandassert_writeable_eq(unicode-org#1522, unicode-org#1399)
- Adding parts functionality to
yoke:- Remove
Yokeable::OutputfromZeroCopyFromtrait (unicode-org#1499) - Add
EitherCart(unicode-org#1484) - Remove
attach_to_option_cart()(unicode-org#1348) - Homogenize yoke generic impls to always work with
Yokeable, addOwnedYokeable(unicode-org#1302)
- Remove
zerovec:- Move over to a model where the vector types deref to
ZeroSliceandVarZeroSlice(unicode-org#1418, unicode-org#1371) - Simplify
ZeroVec/VarZeroVecerror handling, consolidateULEErrortype (unicode-org#1389) - Simplify
ZeroMapKV(unicode-org#1334) - Add
ZeroMap2d, a two-dimensional zero-copy map (unicode-org#1432) - Add borrowed-only version of
ZeroMap(unicode-org#1238) - Add various helper functions to zerovec (unicode-org#1430)
- Rename
PlainOldULEtoRawBytesULE(unicode-org#1413) - Improve
EncodeAsVarULE(unicode-org#1385) - Add
EncodeAsVarULEforZeroVec(unicode-org#1274, unicode-org#1407) - Various trait impls (unicode-org#1332, unicode-org#1330, unicode-org#1328, unicode-org#1287)
- Document ULE alignment guarantee; update all impls with checklists (unicode-org#1294)
- Fix
PairULEvalidation function (unicode-org#1266)
- Move over to a model where the vector types deref to
- FFI:
- Updating to the latest Diplomat
- Add FFI for constructing Data Structs, including decimal data structs (unicode-org#1497)
- Add padding/truncation to FFI (unicode-org#1501)
- Add FFI for constructing fixed decimals from float (unicode-org#1483)
- Properties FFI (unicode-org#1269)
- Experimental:
- New ListFormatter experiment
- More progress on segmentation experiment
- General data model
-
0.4.010 May 2022Release notes
Open source →- Updated to CLDR 40 (unicode-org#1216)
- Functional Unicode property APIs and data; moved to new crate
icu_properties(unicode-org#148) DateTimeFormatoptimization: memory usage cut by two-thirds and perf improved by 40% (unicode-org#519)BlobDataProviderallowing for dynamic, asynchronous data loading (unicode-org#1084)- Major upgrades to the
zerovecutility crate and new benchmarks forZeroMap(unicode-org#1082, unicode-org#1087) - Initial support for time zones in
DateTimeFormatcomponents bag (unicode-org#845) - Bug fixes in
LocaleCanicalizer(unicode-org#1189, etc.) - Week of month/year arithmetic (unicode-org#918)
- Major improvements on code size across FFI (unicode-org#962)
- Iterations on ICU4X Segmenter (unicode-org#1045, unicode-org#1165, etc.)
- Experimental
ListFormatter(unicode-org#1053) - ICU4X now requires Rust 1.56 (unicode-org#1201)
- Functional Unicode property APIs and data; moved to new crate
- Updated to CLDR 40 (unicode-org#1216)
-
0.3.031 Jan 2022Release notes
Open source →- Static data provider without filesystem dependency (unicode-org#78)
- Infrastructure around zero-copy deserialization, including
ZeroVecandYoke(unicode-org#652, unicode-org#667) - Most ICU4X components support
no_std(unicode-org#812) - Hour cycle preferences are used by DateTimeFormat (unicode-org#671)
- Skeleton matching supports additional field widths (unicode-org#584)
- Add canonicalize method to LocaleCanonicalizer (unicode-org#747)
- Added range iterator on UnicodeSet (unicode-org#836)
- Add PluralRules::categories() function (unicode-org#789)
- Consolidated data generation tool into new binary
icu4x-datagen
- Infrastructure around zero-copy deserialization, including
- Static data provider without filesystem dependency (unicode-org#78)
-
0.2.227 Aug 2021Nothing published for this version
-
0.2.121 Jul 2021Nothing published for this version
-
0.2.029 Apr 2021Release notes
Open source →- Updated CLDR to 39 (unicode-org#640)
- Initial release of:
icu_decimal(unicode-org#590)icu_locale_canonicalizer(unicode-org#417)
DateTimeFormatgets support for- day periods (unicode-org#435)
- time zones (unicode-org#418)
- components bag (unicode-org#481)
UnicodeSetgets preliminary support for L3a subset (unicode-org#478)PluralRulessupportEoperand (unicode-org#407)- New utilities:
WriteableZeroVecLiteMapFixedDecimalPattern
- Early prototype of C API -
icu_capi
- Initial release of:
- Updated CLDR to 39 (unicode-org#640)
-
0.1.104 Mar 2021Nothing published for this version
-
0.1.023 Feb 2021Release notes
Open source →- Initial release of ICU4X.
- Initial release of:
icuicu_locidicu_pluralsicu_datetimeicu_uniseticu_providericu_provider_fsicu_provider_cldricu_testdataicu4x_ecma402fixed_decimal
- Initial release of:
- Initial release of ICU4X.