# Introduction

ES4X is small runtime for EcmaScript >=5 applications that runs on graaljs (opens new window) with the help of vert.x (opens new window). JavaScript is the runtime language but it does not use nodejs.

# How it Works

Developing ES4X applications is not different from developing any other JavaScript application. The package.json file defines a project. A project will use and fetch dependencies from 2 different sources:

ES4X makes use of GraalVM (opens new window) which is a polyglot runtime on the JVM. This means it is possible to use any JVM language as well as JavaScript in applications.

Vert.x is used by ES4X in order to provide an optimized event loop and high performance IO library. Using Java from JavaScript can be tedious as there's no way for IDEs to infer type information or APIs out of the box. For this reason ES4X has a few packages published on npm that make the development easier by providing a small shim to map the Java API to JavaScript plus the full API as TypeScript .d.ts definition files.

# Performance

ES4X was the fastest JavaScript according to TechEmpower Frameworks Benchmark Round #18 (opens new window). ES4X is the fastest on all tests when compared to JavaScript frameworks:

round-18-js

And ES4X was on the top #10 among all other frameworks in several tests, showing better performance than the most popular JVM frameworks:

round-18-js