# @formatjs/icu-messageformat-parser

Latest version **3.5.20** (published 2026-09-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install @formatjs/icu-messageformat-parser
pnpm add @formatjs/icu-messageformat-parser
yarn add @formatjs/icu-messageformat-parser
bun add @formatjs/icu-messageformat-parser
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; popular repo.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 3.5.20 |
| Published | 2026-09-19 |
| First published | 2021-03-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 244 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 14745 |
| Maintainers | longlho, redonkulus, pyrocat |

## Links

- npm: https://www.npmjs.com/package/@formatjs/icu-messageformat-parser
- Repository: https://github.com/formatjs/formatjs
- npm.io page: https://npm.io/package/@formatjs/icu-messageformat-parser

## Dependencies (1)

- [@formatjs/icu-skeleton-parser](https://npm.io/package/@formatjs/icu-skeleton-parser.md) 2.1.12

## Recent versions

- 3.5.20 (latest) — 2026-09-19
- 3.5.19 — 2026-09-15
- 3.5.18 — 2026-09-12
- 3.5.17 — 2026-08-17
- 3.5.16 — 2026-07-31
- 3.5.15 — 2026-07-16
- 3.5.14 — 2026-07-11
- 3.5.13 — 2026-07-09
- 3.5.12 — 2026-06-26
- 3.5.11 — 2026-06-04
- 3.5.10 — 2026-05-22
- 3.5.9 — 2026-05-15
- 3.5.8 — 2026-05-12
- 3.5.7 — 2026-05-05
- 3.5.6 — 2026-04-29
- … 96 more at https://npm.io/package/@formatjs/icu-messageformat-parser/versions

## README

# MessageFormat Parser

Hand-written ICU MessageFormat parser with compatible output as
[`intl-messageformat-parser`](https://www.npmjs.com/package/intl-messageformat-parser)
but 6 - 10 times as fast.

## Benchmarks

### JavaScript/TypeScript Parser

```
$ bazel run //packages/icu-messageformat-parser/benchmark:benchmark
complex_msg AST length 2599
normal_msg AST length 400
simple_msg AST length 79
string_msg AST length 36

complex_msg: 21.39 µs (48,112 ops/sec)
normal_msg:   3.10 µs (337,642 ops/sec)
simple_msg:   0.54 µs (1,910,194 ops/sec)
string_msg:   0.15 µs (7,461,955 ops/sec)
```

### Rust Parser (WASM)

The Rust parser (optimized build) is **2.3-3.5x faster** than the JavaScript parser:

```
$ bazel run -c opt //crates/icu_messageformat_parser:parser_bench -- --bench --output-format bencher
complex_msg:  9.43 µs (2.27x faster than JS)
normal_msg:   1.18 µs (2.63x faster than JS)
simple_msg:   153 ns  (3.55x faster than JS)
string_msg:   59 ns   (2.47x faster than JS)
```

The Rust parser is also faster than the SWC ICU MessageFormat parser in this
benchmark, ranging from 6% faster on `normal_msg` to 2.14x faster on
`string_msg`.

---
_Source: https://npm.io/package/@formatjs/icu-messageformat-parser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
