Skip to content

Hermes

A JavaScript engine built to make React Native apps start faster.

Stars
11.4k
Forks
896
Licence
MIT
Language
JavaScript
Last update
6 days ago
Type
Library

What it is

Hermes is a JavaScript engine, the piece of software that runs JavaScript code, optimized for fast start-up of React Native apps. It uses ahead-of-time static optimization and compact bytecode. Most people use it by enabling the pre-built version in a React Native app rather than building it from source.

  • Enable pre-built Hermes in a React Native app by following the official React Native instructions
  • Build the Hermes command-line tools from source using cmake and Ninja
  • Run a JavaScript file through the built hermes binary
  • Integrate a custom Hermes build into a React Native app

Great for

  • React Native app developers who want faster app start-up
  • Developers who want to build Hermes from source or customize it
  • Engineers contributing to JavaScript engine internals
  • Teams who need to match Hermes versions to their React Native version

Not ideal for

  • People who only want to enable Hermes in an app: the README says the official React Native docs cover that without building from source
  • Anyone not working with React Native, since the project is described as optimized for it
  • Teams who cannot track Hermes release versions carefully, because the README warns that version mismatch can crash apps
Step-by-step guide: how to use HermesInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: Git · cmake · Ninja · Native development tools for your OS (C/C++ compiler)

    Create a working directory

    mkdir hermes_workingdir

    Clone the repository

    git clone https://github.com/facebook/hermes.git

    Configure a debug build (macOS/Linux)

    cmake -S hermes -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug

    Build the Hermes CLI tools

    cmake --build ./build
  2. 2

    Run it

    • Build the project with the commands above
    • Change into the build output directory
    • Pipe a JavaScript snippet into the binary: echo "'use strict'; function hello() { print('Hello World'); } hello();" | ./bin/hermes
  3. 3

    Get the most out of it

    • Read the Building and Running Hermes guide for required dependencies and build options
    • Follow the React Native integration guide to use a custom Hermes build in an app
    • Match your Hermes version to the React Native version using the Hermes releases page
    • Read the Hermes Blog for technical articles on engine internals

Downloads

Strengths

  • Designed specifically to speed up start-up of React Native apps
  • Uses ahead-of-time optimization and compact bytecode
  • Released under the permissive MIT license

Trade-offs

  • Each release targets a specific React Native version, and mismatches can crash apps
  • Building from source requires native toolchains plus cmake and Ninja
  • The README gives only brief build steps and points to other docs for details

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.