Skip to content
formatjsPublic

About

The monorepo home to all of the FormatJS related libraries, most notably react-intl.

Topics

Resources

Code of conduct

Contributing

Stars

14.8k stars

Watchers

126 watching

Forks

Latest commit

 

History

7,593 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FormatJS

Unit Tests Slack FormatJS Sauce Browser Matrix Status

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

About

The monorepo home to all of the FormatJS related libraries, most notably react-intl.

Topics

Resources

Code of conduct

Contributing

Stars

14.8k stars

Watchers

126 watching

Forks

Releases

Packages

Used by

Contributors

Languages