Open Source · MIT Licensed · v0.0.1-alpha

The last JavaScript engine
you should ever use.

Rift is a ground-up JavaScript engine built with bold new ideas and an unwavering commitment to doing things differently. Not faster. Not better. Differently.

3 GitHub Stars
0.0.1 Latest Version
1 Contributors
~47 npm Downloads

Not yet trusted by

Google Meta Stripe Vercel Shopify Netflix
Performance

Benchmarks that speak for themselves.

We believe in radical transparency. Here's how Rift stacks up against the industry leaders in every major benchmark suite. The numbers don't lie.

SunSpider Execution Time

Lower is better · measured in milliseconds

Rift V8 SpiderMonkey JavaScriptCore
Rift
14,218 ms
V8
187 ms
SpiderMonkey
203 ms
JavaScriptCore
195 ms

Peak Memory Usage

Lower is better · measured in megabytes

Rift
2,841 MB
V8
48 MB
SpiderMonkey
52 MB
JavaScriptCore
41 MB

ECMAScript Spec Compliance (Test262)

Higher is better · percentage of Test262 tests passing

Rift
11.56%
V8
98%
SpiderMonkey
97%
JavaScriptCore
97%

Cold Start Performance Over Time

Lower is better · milliseconds to execute console.log("hello")

0 500 1000 1500 2000 v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6 Rift V8 SpiderMonkey JavaScriptCore

Note: Rift's cold start time has been increasing with each release. We're looking into it.

Features

Built different. Literally.

Every design decision in Rift was made from first principles. We threw away decades of engine optimization research and started fresh.

Interpreter Only

While other engines waste time on JIT compilation, Rift interprets everything, every time. Consistency is a feature.

Novel GC Strategy

Our garbage collector runs on a simple heuristic: when memory is full, we restart the process. Zero pause times guaranteed.

Single Threaded by Design

No Web Workers. No shared memory. No race conditions. We solved concurrency by removing it entirely.

Selective Spec Compliance

We implement the parts of the ECMAScript spec that we personally agree with. typeof null returns "null" as it should.

Written in Pure JavaScript

That's right—Rift is a JavaScript engine written in JavaScript. It runs on V8 to bootstrap itself. We see no issue with this.

Generous Error Messages

Instead of cryptic stack traces, Rift outputs motivational quotes when your code fails. You're doing great.

Comparison

How Rift compares.

A comprehensive feature comparison with other JavaScript engines on the market.

Feature V8 SpiderMonkey JSC Rift
JIT Compilation
ES2024 Support Partial*
Production Ready
Garbage Collection Generational Incremental Generational Restart-based
Backed by Major Corp Google Mozilla Apple My garage
Full-time Engineers 100+ 50+ 50+ 0.1 (evenings)
Battle Tested Billions of users Hundreds of millions Billions of users My mom tried it
Motivational Error Msgs

* Rift supports let, const, arrow functions, and most of Array.prototype. We consider this sufficient.

Get started in seconds.

Installation is straightforward. Performance may vary. Actually, performance will definitely vary.

terminal
# Install Rift
$ npm install -g rift-engine

# Run your first program
$ echo 'console.log("hello world")' > hello.js
$ rift hello.js

☀️ Good morning! Rift v0.0.1 is waking up...
🔍 Parsing hello.js... (3.2s)
🌳 Building AST... (1.8s)
🏃 Interpreting... (0.4s)
hello world
✨ Great job! Your code ran successfully.
📊 Total execution time: 5.4s
💾 Peak memory: 847MB
🌍 Carbon footprint: 0.003kg CO2
Testimonials

What people are saying.

Real feedback from real developers who have encountered Rift.

★★★★★

"I accidentally installed this instead of V8 and my CI pipeline went from 3 minutes to 4 hours. The motivational error messages were a nice touch though."

SB
Sarah B.
Senior Engineer, Series B Startup
★★★★★

"Rift taught me to appreciate V8 in ways I never thought possible. For that, I'm genuinely grateful."

MK
Marcus K.
JavaScript Developer
★★★★★

"The fact that typeof null returns 'null' is genuinely the bravest engineering decision I've seen this decade."

JR
Jamie R.
TC39 Committee Member (not really)
★★★★★

"Our AWS bill tripled but team morale has never been higher. Every time someone's code fails, Rift tells them they're doing amazing."

AL
Alex L.
Engineering Manager
FAQ

Frequently asked questions.

Is Rift production ready?

We admire your courage for even asking. Technically, you can run it in production, in the same way you can use a spoon to dig a swimming pool.

Why is Rift written in JavaScript?

We believe in dogfooding. Also, learning C++ seemed hard and we had a deadline. The fact that Rift requires V8 to run is something we plan to address in a future release that we have not yet scheduled.

How does the garbage collector work?

When memory usage exceeds a threshold (currently hardcoded to 4GB), Rift gracefully terminates and restarts the process. All state is lost, but memory is freed. We call this approach "Restart-Oriented Memory Management" (ROMM) and have submitted a paper about it that has not been accepted.

Can I contribute?

Absolutely. We welcome all contributions, especially from compiler engineers who can explain what a JIT is. Please see our CONTRIBUTING.md, which currently just says "help".

Does Rift support TypeScript?

Rift supports TypeScript in the same way it supports JavaScript: partially. Type annotations are treated as comments, which is actually what TypeScript does too, so arguably we're 100% compliant.

What is Rift's long-term roadmap?

Phase 1: Open source. Phase 2: Community growth. Phase 3: Figure out what a "bytecode" is. Phase 4: Somehow become the default engine in at least one browser. We are currently between phases 1 and 2.

Ready to make your code
slower than ever?

Join the handful of developers who have chosen Rift. Not because it's better. But because it exists.