formatjs/formatjs
formatjs/formatjs has 14,753 GitHub stars and 1,386 forks. GitHot measured 0 stars in 24 hours and +2 in 7 days. Last checked 2026-11-04 22:09 UTC. Last push 2026-11-01.
The monorepo home to all of the FormatJS related libraries, most notably react-intl.
Measured star growth
- in 24h
- 0
- in 7 days
- +2
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalFormatJS
This repository is the home of FormatJS and related libraries.
Slack: Join us on Slack at formatjs.slack.com for help, general conversation and more 💬🎊🎉 You can sign-up using this invitation link.
Development
See CONTRIBUTING.md for instructions.
Published Packages
Choose by application ecosystem. Registry names identify how to install a package;
implementation language can differ. For example, @formatjs/cli is Rust-backed
and distributed through npm.
| Ecosystem | Distribution | Entry point |
|---|---|---|
| JavaScript / TypeScript | npm | React, Vue, Svelte, message formatting, Intl polyfills, build tools |
| Rust | crates.io | Message runtime, parsers, Intl cores |
| Python | PyPI | Rust-backed message runtime and parser bindings |
| Hermes / React Native | GitHub Releases | Native SDK with Rust libraries and C++/JSI installers |
Intl APIs: npm and Rust
npm packages expose JavaScript APIs with TypeScript types. Rust crates expose native operations for Rust applications and host integrations. LocaleMatcher is a proposal ponyfill; the other rows implement standardized Intl APIs.
| API | JavaScript / TypeScript (npm) | Rust (crates.io) |
|---|---|---|
| Collator | @formatjs/intl-collator |
formatjs_intl_collator |
| DateTimeFormat | @formatjs/intl-datetimeformat |
formatjs_intl_datetimeformat |
| DisplayNames | @formatjs/intl-displaynames |
formatjs_intl_displaynames |
| DurationFormat | @formatjs/intl-durationformat |
formatjs_intl_durationformat |
| getCanonicalLocales | @formatjs/intl-getcanonicallocales |
formatjs_intl_getcanonicallocales |
| ListFormat | @formatjs/intl-listformat |
formatjs_intl_listformat |
| Locale | @formatjs/intl-locale |
formatjs_intl_locale |
| LocaleMatcher | @formatjs/intl-localematcher |
formatjs_intl_localematcher |
| NumberFormat | @formatjs/intl-numberformat |
formatjs_intl_numberformat |
| PluralRules | @formatjs/intl-pluralrules |
formatjs_intl_pluralrules |
| RelativeTimeFormat | @formatjs/intl-relativetimeformat |
formatjs_intl_relativetimeformat |
| Segmenter | @formatjs/intl-segmenter |
formatjs_intl_segmenter |
| supportedValuesOf | @formatjs/intl-supportedvaluesof |
formatjs_intl_supportedvaluesof |
DateTimeFormat calendar add-ons are npm packages named
@formatjs/intl-datetimeformat-calendar-*; see calendar installation.
Rust calendar support is in formatjs_intl_datetimeformat_calendars.
JavaScript / TypeScript libraries and tools (npm)
| Purpose | Packages |
|---|---|
| Application APIs | react-intl, vue-intl, @formatjs/svelte-intl, @formatjs/intl |
| ICU MessageFormat | intl-messageformat, @formatjs/icu-messageformat-parser, @formatjs/icu-skeleton-parser |
| CLI | @formatjs/cli, @formatjs/cli-lib |
| Build transforms | babel-plugin-formatjs, @formatjs/ts-transformer, @formatjs/unplugin |
| Linting and editing | eslint-plugin-formatjs, @formatjs/editor |
| Utilities | @formatjs/bigdecimal, @formatjs/fast-memoize, @formatjs/utils, @formatjs/ecma376 |
@formatjs/cli selects its @formatjs/cli-native-* platform package automatically.
Package versions and licenses are listed on npm; changelogs live under packages/.
Rust libraries (crates.io)
| Purpose | Crates |
|---|---|
| Application message runtime | formatjs_intl, formatjs_intl_macros |
| ICU MessageFormat runtime | formatjs_icu_messageformat |
| ICU parsers | formatjs_icu_messageformat_parser, formatjs_icu_skeleton_parser |
| Platform printf parsers | formatjs_apple_printf_parser, formatjs_java_printf_parser |
| Locale-data infrastructure | formatjs_intl_data, formatjs_intl_data_build |
| Hermes native archive | formatjs_intl_hermes |
See Rust Intl crates for locale-data features and the application runtime for message catalogs. Standalone CLI binaries are also available in CLI releases.
Python bindings (PyPI)
| Install package | Python import | Purpose |
|---|---|---|
py_intl |
intl |
Application message runtime and catalogs |
icu_messageformat |
icu_messageformat |
ICU MessageFormat runtime |
icu_messageformat_parser |
icu_messageformat_parser |
ICU message parser |
icu_skeleton_parser |
icu_skeleton_parser |
Number/date skeleton parser |
Install with python -m pip install <package>. These wheels bind the Rust
implementations; see the Python package READMEs.
Native Hermes SDK (GitHub Releases)
SDK releases ship prebuilt Rust libraries, public headers, C++/JSI adapters, JS installers, and checksums for Android, iOS/simulator, macOS, and Linux. Integrate the SDK into your native app, then install standard Intl APIs into its Hermes runtime. See installation and supported targets.
Big Thanks
Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,547 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
376,815 starsreact/react
The library for web and native user interfaces.
251,960 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,490 stars