High performance JavaScript to JavaScript compiler with a Rust core

License: Other

Language: Rust

Keywords: ast, compiler, javascript, parser, performance, rust, transpiler



Travis CI Crates.io Gitter

Ratel is a high performance JavaScript to JavaScript compiler with a Rust core. It's goal is to take newest versions of JavaScript as input, and produce output that's compatible with older versions of the language.

This repo is split in two separate folders:

  • core contains the main Rust codebase that does all the heavy lifting.
  • ffi contains the Node.js wrapper around the Rust core with Neon bindings.

For common usage checkout the ratel-cli repo.


While still incomplete, the Parser part of Ratel can run circles around even the fastest parsers built in JavaScript, here it is compared to Esprima.

ratel vs esprima chart


This project is created and maintained by Maciej Hirsz with the help of awesome contributors. Extended thanks to:

  • cmtt for work on the Node.js FFI and testing.
  • Jan Schulte for the initial version of transformer and codegen.


The smirky Ratel by the courtesy of A. L. Palmer.


This code is distributed under the terms of both the MIT license and the Apache License (Version 2.0), choose whatever works for you.


Project Statistics

Sourcerank 6
Repository Size 1.3 MB
Stars 81
Forks 7
Watchers 12
Open issues 10
Dependencies 0
Contributors 3
Tags 11
Last updated
Last pushed

Top Contributors See all

Maciej Hirsz Matthias Thoemmes Jan Schulte

Packages Referencing this Repo

JavaScript transpiler in Rust
Latest release 0.7.0 - Updated - 81 stars
JavaScript transpiler in Rust
Latest release 0.2.1 - Updated - 81 stars

Recent Tags See all

v0.7.0 November 09, 2016
v0.6.2 November 06, 2016
v0.6.1 November 06, 2016
v0.6.0 November 03, 2016
v0.5.5 October 23, 2016
v0.5.4 October 22, 2016
v0.5.3 October 20, 2016
v0.5.0 October 19, 2016
v0.4.1 October 16, 2016
v0.4.0 October 16, 2016
v0.3.0 October 15, 2016

Something wrong with this page? Make a suggestion

Last synced: 2016-11-10 15:44:17 UTC

Login to resync this repository