Skip to content

perf: embed small ICU data (flutter en+root bundle)#35040

Open
littledivy wants to merge 4 commits into
denoland:mainfrom
littledivy:feat/icu-flutter-small
Open

perf: embed small ICU data (flutter en+root bundle)#35040
littledivy wants to merge 4 commits into
denoland:mainfrom
littledivy:feat/icu-flutter-small

Conversation

@littledivy

Copy link
Copy Markdown
Member

Replaces the deno_core_icudata dependency (full ~10 MiB ICU common data) with Chromium's flutter ICU bundle (en + root, ~0.8 MiB), vendored in-tree and embedded 16-byte aligned via udata_setCommonData.

Pairs with rusty_v8 building external ICU data (icu_use_data_file=true, denoland/rusty_v8#1998): V8 no longer links ICU data, so this embed is the sole source.

Tradeoff: non-English locales fall back to root behavior (small-icu style). Cuts ICU footprint ~9 MiB.

Draft — opened to run CI.

Replace the deno_core_icudata dependency (full ~10 MiB ICU common data)
with Chromium's 'flutter' ICU bundle (en + root, ~0.8 MiB) vendored in
tree and embedded 16-byte aligned via udata_setCommonData.

Pairs with rusty_v8 building external ICU data (icu_use_data_file=true):
V8 no longer links ICU data, so this embed is the sole source. Non-English
locales fall back to root behavior (small-icu style); acceptable for our
deployments and cuts ICU footprint by ~9 MiB.
@littledivy littledivy changed the title feat(core): embed small ICU data (flutter en+root bundle) perf: embed small ICU data (flutter en+root bundle) Jun 8, 2026
@littledivy
littledivy marked this pull request as ready for review June 8, 2026 13:24
Wire the embedded flutter ICU bundle into the default build. Without this
the feature was defined but never enabled, so the embed was dead code and
ICU came solely from V8's linked-in data.

Note: with a V8 that still links full ICU data, set_common_data overrides
it with the en+root flutter bundle, so non-English Intl falls back to root
until rusty_v8 ships external ICU data (icu_use_data_file=true).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant