All Projects → ratel-rust → Ratel Core

ratel-rust / Ratel Core

Licence: other
High performance JavaScript to JavaScript compiler with a Rust core

Programming Languages

javascript
184084 projects - #8 most used programming language
rust
11053 projects

Projects that are alternatives of or similar to Ratel Core

Cub
The Cub Programming Language
Stars: ✭ 198 (-46.05%)
Mutual labels:  compiler, ast, parser
Escaya
An blazing fast 100% spec compliant, incremental javascript parser written in Typescript
Stars: ✭ 217 (-40.87%)
Mutual labels:  ast, parser, performance
Snapdragon
snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory.
Stars: ✭ 180 (-50.95%)
Mutual labels:  compiler, ast, parser
Tiny Compiler
A tiny compiler for a language featuring LL(2) with Lexer, Parser, ASM-like codegen and VM. Complex enough to give you a flavour of how the "real" thing works whilst not being a mere toy example
Stars: ✭ 425 (+15.8%)
Mutual labels:  compiler, ast, parser
Exprtk
C++ Mathematical Expression Parsing And Evaluation Library
Stars: ✭ 301 (-17.98%)
Mutual labels:  compiler, ast, parser
Phplrt
PHP Language Recognition Tool
Stars: ✭ 127 (-65.4%)
Mutual labels:  compiler, ast, parser
Meriyah
A 100% compliant, self-hosted javascript parser - https://meriyah.github.io/meriyah
Stars: ✭ 690 (+88.01%)
Mutual labels:  ast, parser, performance
Nimporter
Compile Nim Extensions for Python On Import!
Stars: ✭ 474 (+29.16%)
Mutual labels:  compiler, transpiler, performance
Webassemblyjs
Toolchain for WebAssembly
Stars: ✭ 566 (+54.22%)
Mutual labels:  compiler, ast, parser
Charly Vm
Fibers, Closures, C-Module System | NaN-boxing, bytecode-VM written in C++
Stars: ✭ 66 (-82.02%)
Mutual labels:  compiler, ast, parser
Lioness
The Lioness Programming Language
Stars: ✭ 155 (-57.77%)
Mutual labels:  compiler, ast, parser
Xdpw
XD Pascal: A small embeddable self-hosting Pascal compiler for Windows. Supports Go-style methods and interfaces
Stars: ✭ 199 (-45.78%)
Mutual labels:  compiler, parser
Transcrypt
Python 3.7 to JavaScript compiler - Lean, fast, open! -
Stars: ✭ 2,502 (+581.74%)
Mutual labels:  compiler, transpiler
Saltwater
A C compiler written in Rust, with a focus on good error messages.
Stars: ✭ 219 (-40.33%)
Mutual labels:  compiler, parser
Retyped
Access 3600+ libraries from C# and let Bridge.NET compile your project into JavaScript.
Stars: ✭ 216 (-41.14%)
Mutual labels:  compiler, transpiler
Adlik
Adlik: Toolkit for Accelerating Deep Learning Inference
Stars: ✭ 237 (-35.42%)
Mutual labels:  compiler, performance
Headache
Programming Language that compiles to 8 Bit Brainfuck
Stars: ✭ 59 (-83.92%)
Mutual labels:  ast, transpiler
Deepc
vendor independent deep learning library, compiler and inference framework microcomputers and micro-controllers
Stars: ✭ 260 (-29.16%)
Mutual labels:  compiler, performance
Llvm Guide Zh
User Guides For those new to the LLVM system.(LLVM系统的新用户指南,中文翻译版)
Stars: ✭ 180 (-50.95%)
Mutual labels:  compiler, ast
py2many
Transpiler of Python to many other languages
Stars: ✭ 420 (+14.44%)
Mutual labels:  ast, transpiler

Ratel

ratel-core

Travis CI Crates.io Discord Gitter

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

Online REPL with Wasm, courtesy of cmtt.

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.

Performance

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 using the ratel FFI.

ratel chart

The benchmarks visualized above can be executed in the ffi folder using the npm run benches command.

Contributors

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.

Logo

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

License

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

See LICENSE-APACHE and LICENSE-MIT for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].