HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
oracle
graaljs
C++2018–2025
oracle / graaljs

graaljs

GraalJS – A high-performance, ECMAScript compliant, and embeddable JavaScript runtime for Java

19Distinct people
21Mentions
0Explicit recommenders
2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

GraalJS – A high-performance, ECMAScript compliant, and embeddable JavaScript runtime for Java

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year21 dated mentions

Observed mentions: 2018-04-17 20:42:14 UTC to 2025-07-17 18:38:46 UTC.

0123452018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC404
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC505
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC211
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

21 sources
That's just incredibly cool, my congratulations! Foremost, my apologies if this is a nonsensical question. I haven't been soaking in the WASM ecosystem enough to know how much WASM is "just" JS versus ... something else. Caveat aside, I saw one of the commits mention jython, which notoriously has ancient (and probably incredibly incomplete) python 2.x support; do you know if python-wasm would run on top of GraalJS (https://github.com/oracle/graaljs#nodejs-support)? Separately, do you want issues related to zython.org in the cowasm issue tracker? It returns 405 (method not allowed) over and over on POST https://zython.org/python-wasm-sw/read-signal for me
In CoWasm: An alternative to Emscripten, based on Zig (demo: Python in the browser)
No, not really a fork. GraalJS is a new independent from-scratch implementation of JavaScript. It uses a pair of radically different execution and optimisation techniques known as self-specialising-ASTs, and partial evaluation, and runs on the JVM. But a sibling project, Graal-Node.js, does include vendored code from Node.js in order to be compatible with Node.js applications. That's where the commits come from I'd guess. Compare: https://github.com/oracle/graaljs/tree/master/graal-js https://github.com/oracle/graaljs/tree/master/graal-nodejs
In Dear Oracle, Please Release the JavaScript Trademark
That's right, we will be able to cut it down in the future. Let me explain why: 1. Enso compiler bases on GraalVM which is 400Mb (packed)[1]. 2. The package contains GraalVM implementations of Python[2], R[3], and JavaScript[4] compilers, which weight 150Mb, 70Mb, and 50Mb respectivelly. 3. The package contains OpenCV library, as Enso has built-in bindings for it, which is 200Mb. 4. The rest (approx 200Mb) are core Enso libraries and tooling. We will be able to cut it down in the future as soon as we release Enso Marketplace which would allow you to install these things on-demand. [1] https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm... [2] https://github.com/oracle/graalpython [3] https://github.com/oracle/fastr/releases/tag/vm-21.1.0 [4] https://github.com/oracle/graaljs
In Launch HN: Enso (YC S21) – Visual programming and workflow automation tool
Hasn't Nashorn been superseded by GraalJS? Is this just for those who are stuck with Nashorn, or will there be new development? GraalJS is ECMASCript 2020 compatible and is said to rival V8 on performance, so I would've thought it the obvious choice for new projects going forward. https://github.com/graalvm/graaljs Edit: found more info about this release in the initial announcement: https://mail.openjdk.java.net/pipermail/nashorn-dev/2020-Oct...
In Standalone Nashorn 15.0 is out
> Can someone please give a sober explanation of what GraalVM, is and how Truffle works? GraalVM is basically a JVM with a new compiler, the Graal compiler. Truffle is the language implementation framework for GraalVM and designed to build AST interpreter. The Graal compiler can optimize Truffle ASTs through partial evaluation (see "One VM to rule them all" paper [1]), and produces machine code directly without using Java bytecode as IR. > how do JS semantics get expressed in a Java VM? Graal.js comes with a parser for JavaScript code that generates a Truffle ASTs for a given JavaScript program. JS semantics are defined within the AST nodes (see [2]). > What does a getProperty instruction look like? I think getProperty is implemented in `CachedGetPropertyNode` [3], but I am not sure as there are multiple other property-related nodes. > Ho
Read the rest
w does it know when to invalidate inline caches? Unfortunately, Graal.js lacks documentation for `CachedGetPropertyNode`. But I encourage you to have a look at SimpleLanguage [4], a JS-like toy language and the reference language implementation for Truffle with proper documentation. [5] explains how reading properties and invalidating inline caches works and it's all done using the Truffle DSL. The `@Specialization` annotation [6] might be a good starting point if you want to learn how it works. You may also want to check out the docs on the GraalVM website (e.g. [7]). [1] https://doi.org/10.1145/2509578.2509581 [2] https://github.com/graalvm/graaljs/tree/a36b978aa328a8da3a7f... [3] https://github.com/graalvm/graaljs/blob/a36b978aa328a8da3a7f... [4] https://github.com/graalvm/simplelanguage [5] https://github.com/graalvm/simplelanguage/blob/a25e385dd8626... [6] https://www.graalvm.org/truffle/javadoc/com/oracle/truffle/a... [7] https://www.graalvm.org/docs/Truffle-Framework/user/README
In GraalVM
Bear in mind Deno isn't the only competitor. GraalJS can run all NPM modules on top of the JVM, in fact it supports both "pure" running JS on top of the JVM and also provides a mode in which it replaces V8 in the original Node binary, for extra compatibility with e.g. native extensions. This gives you at least three major tech wins: 1. Interop with the entire Java ecosystem and also as other Graal languages improve, with them too (e.g. Graal's Ruby support is pretty great, Python is maturing) 2. Extremely efficient and scalable pauseless garbage collectors. 3. Ability to do shared-memory multi-threading by sharing Java objects between workers. And soon via Project Loom there'll be very light weight fibers too i.e. you can write your code in a fully blocking style, no promises or async/await, but it'll be just as efficient as Node. It can
Read the rest
load sources from URLs too (see https://github.com/graalvm/graaljs/blob/master/docs/user/Jav...) It feels like Deno has focused on adding JS-specific features, and sandboxing is an admirable goal. Obviously GraalVM can do that too as long as you're in pure JVM mode, and aren't installing native/C++ Node extensions. So it may well be that Deno is more attractive to pure-JS hackers. But for people who need or want to bridge ecosystems, or scale a single JS program up to much larger heaps and higher performance programs, GraalJS is a serious competitor. Probably Node people don't take it too seriously because it's sort of outside their social circles.
In Is Node.js Dying?
This benchmark mainly measures the performance of the HTTP parsing and database libraries, often in a suboptimal default configuration. In node land, they're admittedly not amazing, but nothing about the language prevents them from being better. For example, for a long time, the only reason that node was slow on these benchmarks was the built-in URL parser. Replacing it with this carefully written module https://www.npmjs.com/package/fast-url-parser resulted in 2x improvements on the benchmark. I haven't looked closely at the situation nowadays but I imagine its still quite similar with lots of low hanging fruit lying around and stalled due to backward-compatibility concerns. For proof find "es4x" in the benchmark list, which basically replaces the entire stack of HTTP parsing and database libraries with the ones from vert.x and runs JS o
Read the rest
n Graal, even though Graal is currently at least 2.5x slower than V8 in terms of JS performance: https://github.com/graalvm/graaljs/issues/74 Node core (and the libraries around it) has unfortunately stalled in the "good enough" zone for quite a while. The good bit is that they stay in the good-enough zone after adding your own code.
In A 7KB AWS lambda Node.js library with zero runtime dependencies

Showing the 15 most recent of 21 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.