05 — Side by side
The comparison, without the adjectives.
Where a row cites a measurement, it comes from the checked benchmark report in the repository. Where nothing was measured, the row says so.
| Criteria | React Intl | Palamedes |
|---|
| ICU MessageFormat | Native — the reference implementation | Native, with a checked source-to-runtime proof |
|---|
| Server components | Not supported natively (Context-based) | First-class via request-local scope |
|---|
| Message identity | Explicit IDs; generated hash IDs optional | message + context |
|---|
| Catalog format | Custom JSON plus TMS formatter adapters | .po (gettext), FCL opt-in |
|---|
| Authoring | <FormattedMessage> components and hooks | Compile-time macros, erased at build |
|---|
| Extract + update, realistic corpus | 424 ms vs 73 ms | 5.85× faster on realistic extraction-only¹ |
|---|
| Intl polyfills | Shipped as separate packages | None — modern runtimes only |
|---|
¹ Median of 7 runs on the realistic corpus (1,500 files, ~400k lines, 6,000 messages — half the files carry no i18n marker), one machine-local run, same semantic validation for every tool. The full report and the harness are in the repository, and the site build fails if these numbers drift from it.