explaingit

jerryscript-project/jerryscript

7,389CAudience · developerComplexity · 5/5LicenseSetup · hard

TLDR

A JavaScript engine that runs on tiny microcontrollers with as little as 64 KB of RAM, letting you add JavaScript scripting to IoT devices and embedded hardware.

Mindmap

mindmap
  root((JerryScript))
    What it does
      JS on microcontrollers
      64KB RAM minimum
      ECMAScript 5.1
    Tech stack
      C99
      ARM architecture
      Python build script
    Use cases
      IoT scripting
      Embedded apps
      Bytecode snapshots
    Audience
      Embedded developers
      IoT engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add JavaScript scripting capability to an IoT device or microcontroller with very limited RAM.

USE CASE 2

Embed a lightweight JavaScript interpreter into a C application using JerryScript's C API.

USE CASE 3

Precompile JavaScript files to bytecode snapshots so they load faster on resource-constrained hardware.

USE CASE 4

Prototype embedded device logic in JavaScript instead of C while staying within tight memory limits.

Tech stack

CPythonARMECMAScript

Getting it running

Difficulty · hard Time to first run · 1h+

Building for embedded targets requires a cross-compilation toolchain for ARM, not a typical install-and-run.

Apache 2.0, free to use and modify for any purpose, including commercial, with minimal restrictions.

In plain English

JerryScript is a JavaScript engine built for very small, resource-constrained devices such as microcontrollers. Most JavaScript engines -- like the ones inside Chrome or Firefox -- require a meaningful amount of RAM to operate. JerryScript is designed to run on devices with less than 64 KB of RAM and less than 200 KB of flash storage, which makes it practical for Internet of Things hardware: sensors, tiny embedded boards, and similar devices where memory is measured in kilobytes rather than gigabytes. The engine fully implements the ECMAScript 5.1 JavaScript standard and covers roughly 70% of the more recent ECMAScript 2025 standard. It is written in C99, a version of the C language chosen for broad compatibility across processor architectures. When compiled for ARM processors (a common chip family in embedded devices), the binary comes to about 258 KB. It also supports snapshots: a way to precompile JavaScript source files into bytecode so they start faster on a device. Developers who want to add JavaScript scripting to their own embedded applications can embed JerryScript using its C API. The project includes extensive documentation covering configuration options, the full API reference, debugging tools, the module system, and a migration guide for upgrades. Building from source requires cloning the repository and running a Python build script. JerryScript is open source under the Apache 2.0 license and is maintained by the JS Foundation and its contributors. A mailing list and GitHub wiki provide additional support and reference material.

Copy-paste prompts

Prompt 1
I want to embed JerryScript into my C application to let users run JavaScript snippets. Show me the minimal C code to initialize the engine, run a script, and clean up.
Prompt 2
How do I compile JerryScript from source for an ARM Cortex-M device? Walk me through the build steps.
Prompt 3
I want to use JerryScript snapshots to precompile my JavaScript files so they load faster on my microcontroller. How do I generate and load a snapshot?
Prompt 4
What ECMAScript 2025 features are missing from JerryScript's 70% coverage? Help me write a polyfill for one of the missing features.
Prompt 5
Help me expose a C function to JavaScript code running in JerryScript so my embedded script can read a sensor value.
Open on GitHub → Explain another repo

← jerryscript-project on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.