# icu-minify

> ICU message format compiler with a

Latest version **4.14.8** (published 2026-09-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install icu-minify
pnpm add icu-minify
yarn add icu-minify
bun add icu-minify
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 4.14.8 |
| Published | 2026-09-29 |
| First published | 2026-01-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4358 |
| Author | Jan Amann |
| Maintainers | amann |
| Keywords | icu, messageformat, i18n, internationalization, compiler, minify |

## Links

- npm: https://www.npmjs.com/package/icu-minify
- Repository: https://github.com/amannn/next-intl
- Homepage: https://next-intl.dev
- Issues: https://github.com/amannn/next-intl/issues
- Funding: https://github.com/sponsors/amannn
- npm.io page: https://npm.io/package/icu-minify

## Alternatives

- [messageformat](https://npm.io/package/messageformat.md) — 329.7K weekly downloads
- [@mintlify/scraping](https://npm.io/package/@mintlify/scraping.md) — 294.8K weekly downloads
- [@mintlify/previewing](https://npm.io/package/@mintlify/previewing.md) — 209.5K weekly downloads
- [@mintlify/prebuild](https://npm.io/package/@mintlify/prebuild.md) — 209.5K weekly downloads
- [@mintlify/link-rot](https://npm.io/package/@mintlify/link-rot.md) — 206.3K weekly downloads

## Recent versions

- 4.14.8 (latest) — 2026-09-29
- 0.0.0-canary-1244f54 (canary) — 2026-10-02
- 0.0.0-canary-4932295 — 2026-10-02
- 4.14.7 — 2026-09-24
- 4.14.6 — 2026-09-21
- 0.0.0-canary-c88e873 — 2026-09-21
- 4.14.5 — 2026-09-14
- 4.14.4 — 2026-09-11
- 4.14.3 — 2026-09-10
- 4.14.2 — 2026-09-01
- 4.14.1 — 2026-08-28
- 4.14.0 — 2026-08-27
- 0.0.0-canary-061f08c — 2026-08-27
- 0.0.0-canary-0f7ee4c — 2026-08-21
- 0.0.0-canary-0f4e882 — 2026-08-17
- … 46 more at https://npm.io/package/icu-minify/versions

## README

# `icu-minify`

ICU message format compiler with a 650 bytes runtime ✨

## Features

1. **Build-time compilation** ⚡  
   Converts ICU messages to a compact JSON intermediate representation
2. **Minimal runtime** 📦  
   650 bytes (minified + compressed) with zero runtime dependencies
3. **Full ICU support** 🌍  
   `{arguments}`, `plural`, `select`, `selectordinal`, `date`, `time`, `number` and `<tags>`

## Usage

```ts
import compile from 'icu-minify/compile';
import format from 'icu-minify/format';

// At build time
const compiled = compile('Hello {name}!');

// ["Hello ", ["name"], "!"]
console.log(compiled);

// At runtime
format(compiled, 'en', {name: 'World'});
```

## Acknowledgments

This library is heavily inspired by [`icu-to-json`](https://github.com/jantimon/icu-to-json) and [`@lingui/message-utils`](https://github.com/lingui/js-lingui/tree/main/packages/message-utils), which similarly use an array-based intermediate representation for compiled messages.

## Design

For detailed design rationale, motivation, tradeoffs, and implementation details, see [RFC: Ahead-of-time compilation of ICU messages](../../rfcs/002-icu-message-precompilation.md).

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