# facebook/hermes

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/facebook-hermes).**

11,161 stars · 810 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/facebook/hermes
- awesome-repositories: https://awesome-repositories.com/repository/facebook-hermes.md

## Description

Hermes is a mobile-optimized JavaScript runtime and engine designed for React Native. It functions as an ahead-of-time bytecode compiler that converts JavaScript source code into a dense binary format during the build process to eliminate the need for parsing and compilation at runtime.

The engine features a baseline JIT compiler that generates native machine code for frequently called functions to improve performance after the initial launch. It also includes a mobile-optimized garbage collector that precisely identifies reachable objects to minimize memory overhead and pause times on resource-constrained devices.

The project provides capabilities for ahead-of-time compilation, static analysis optimization, and compact bytecode representation to accelerate application startup and reduce memory usage. It also includes a command line tool to run JavaScript files and scripts.

## Tags

### Programming Languages & Runtimes

- [JavaScript Engines](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-engines.md) — Functions as a high-performance JavaScript engine designed specifically to be integrated into React Native applications. ([source](https://cdn.jsdelivr.net/gh/facebook/hermes@static_h/README.md))
- [Ahead-Of-Time Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/ahead-of-time-compilation.md) — Compiles JavaScript source code into bytecode during the build process to eliminate runtime parsing overhead. ([source](https://cdn.jsdelivr.net/gh/facebook/hermes@static_h/README.md))
- [Build-Time Bytecode Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/build-time-bytecode-compilation.md) — Provides a build-time process that compiles JavaScript source into bytecode to skip parsing and compilation at runtime.
- [Bytecode Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/bytecode-compilation.md) — Transforms JavaScript source into a space-efficient bytecode format to reduce load times and memory usage. ([source](https://cdn.jsdelivr.net/gh/facebook/hermes@static_h/README.md))
- [Cold Start Optimizations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/precompilation/cold-start-optimizations.md) — Applies precompilation and static optimizations to drastically reduce the initial startup latency of mobile applications. ([source](https://cdn.jsdelivr.net/gh/facebook/hermes@static_h/README.md))
- [Precise Garbage Collections](https://awesome-repositories.com/f/programming-languages-runtimes/precise-garbage-collections.md) — Implements a precise garbage collector that minimizes memory overhead and pause times on resource-constrained mobile devices.
- [Mobile](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/javascript-runtimes/mobile.md) — Provides a JavaScript execution environment optimized for the resource constraints of mobile devices.
- [JavaScript Engine Embedding](https://awesome-repositories.com/f/programming-languages-runtimes/c-library-embedding/runtime-embedding/webassembly-engine-embedding/javascript-engine-embedding.md) — Designed to be embedded as the primary JavaScript execution engine within React Native host applications.
- [Compact Binary Formats](https://awesome-repositories.com/f/programming-languages-runtimes/compact-binary-formats.md) — Uses a dense executable format to reduce the total memory footprint and accelerate loading from disk.
- [Compact Bytecode Representations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/compact-bytecode-representations.md) — Employs a dense binary format for executable bytecode to reduce memory footprint and speed up loading.
- [Static Analysis Optimizers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/optimization-frameworks/static-analysis-optimizers.md) — Performs static analysis during compilation to remove unused functions and execute constant folding.
- [JIT Compilation Engines](https://awesome-repositories.com/f/programming-languages-runtimes/jit-compilation-engines.md) — Includes a baseline JIT compiler that generates native machine code for frequently called functions during execution.
- [Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/event-loops.md) — Utilizes a single-threaded event loop for processing asynchronous tasks and callbacks to ensure consistent state management.
- [Garbage Collectors](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-internals-foundations/garbage-collectors.md) — Ships a precise garbage collector that minimizes memory overhead and pause times on resource-constrained mobile devices.

### Mobile Development

- [React Native Performance Optimizations](https://awesome-repositories.com/f/mobile-development/react-native-performance-optimizations.md) — Optimizes mobile app launch times and memory usage by providing a specialized JavaScript engine for React Native.

### Software Engineering & Architecture

- [Startup Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-engines/just-in-time-compilers/startup-optimizers.md) — Minimizes application launch time by using static optimizations and compact bytecode to reduce initialization work. ([source](https://cdn.jsdelivr.net/gh/facebook/hermes@static_h/README.md))
- [Mobile-Optimized Memory Management](https://awesome-repositories.com/f/software-engineering-architecture/memory-management-systems/mobile-optimized-memory-management.md) — Reduces pause times and memory overhead on mobile devices using a precise garbage collection system.

### Web Development

- [Baseline JIT Compilation](https://awesome-repositories.com/f/web-development/performance-optimizations/component-update-optimizations/bytecode-compilers/single-pass-compilers/baseline-compilation-strategies/baseline-jit-compilation.md) — Implements a baseline JIT compiler that generates native machine code for frequently called functions to improve runtime performance.
