List of languages that compile to JS (original) (raw)

List of languages that compile to JavaScript and many other transpilers

Table of contents

CoffeeScript + Family & Friends

Name Description Last commit
CoffeeScript Unfancy JavaScript 2020-01-31
CoffeeScript II: The Wrath of Khan Rewrite of the CS compiler 2017-04-13

Family (share genes with CoffeeScript)

Name Description Last commit
Coco A CoffeeScript dialect that aims to be more radical and practical, also acts as a test bed for features that get imported in CoffeeScript. 2014-09-28
LiveScript A fork of Coco that is much more compatible with CoffeeScript, more functional, and with more features. 2018-11-11
IcedCoffeeScript A CoffeeScript dialect that adds support for await and defer keywords which simplify async control flow. 2019-11-27
Parsec CoffeeScript CS based on parser combinators. The project's aim is to add static metaprogramming (i.e. macros + syntax extensibility) to Coffee Script (CS), similar to how Metalua adds such features to Lua. The resulting compiler, once merged with the official compiler, should be usable as a drop-in replacement for it. 2015-11-18
Contracts.coffee A dialect of CoffeeScript that adds built-in support for contracts. 2014-08-08
Uberscript A CoffeeScript fork that adds type annotations which are compiled to Google closure compiler type annotation comments. 2013-09-16
ToffeeScript A dialect of CoffeeScript that support Asynchronous Syntax and Regexp operator =~ 2018-04-02
Caffeine A dialect of CoffeeScript that supports packages and classes import, useful for browser applications 2013-06-03
heap.coffee A dialect of CoffeeScript that offers a C-like type system with manual memory management 2012-05-13
EmberScript Ember.js-infused CoffeeScript. 2015-04-02
BlackCoffee CoffeeScript with hygienic macros. See also #3171 2014-11-28
Storymatic A dialect of CoffeeScript rewritten from scratch to support typed languages. 2022-06-04
Civet Written from scratch, aims to be 97+% compatible with existing CoffeeScript2 (via compiler pragmas) while also being 99% TS compatible. 2024-12-20

Name Description Last commit
NodeScript JavaScript without the Variable Declarations and Semicolons 2017-11-01
Bizubee The World's Most Intense Programming Language! 2017-02-08
Kaffeine Enhanced Syntax for JavaScript. 2012-08-21
Moescript Indent-based language. The original repository at https://github.com/moescript/moescript is missing. The link is to a surviving fork. 2012-04-14
pogoscript Language that emphasises readability, handles async control flow nicely, is friendly to domain specific languages and compiles to regular JavaScript 2015-08-11
LispyScript A JavaScript with Lispy syntax and Macros. 2020-01-28
Hot Cocoa Lisp A Lisp-like language that compiles to JavaScript. 2015-03-15
Sibilant JavaScript with a lisp. 2017-12-20
ki Clojure-like syntax, mori's immutable data structures in a few sweet.js macros. Can be intermixed with JavaScript. 2016-02-06
jisp A JS-native and axiomatic Lisp that focuses on the core ideas of code-as-data, S-expressions, and macros, introducing as few new concepts as possible. 2015-03-20
Ham Looks very similar to JavaScript at first, but offers (hopefully) many useful features 2013-05-27
GorillaScript Compile-to-JavaScript language designed to empower the user while attempting to prevent some common errors, offers Macros, optional Typing, and asynchronous syntax. 2013-07-16
RedScript Elixir-flavored JavaScript. 2018-04-04
Daonode Functional logic solver, compiler. 2015-11-26
LiteScript Literate, highly-readable, type annotated, imperative language that compiles to JavaScript. 2018-06-22
ColaScript Similar to Dart, CoffeeScript, Python and PHP 2015-02-03
Taijilang A customizable and extensible language with dynamic parser and meta language. 2015-11-27
MoonScript MoonScript is a dynamic scripting language that compiles into Lua. The syntax of MoonScript has been heavily inspired by the syntax of CoffeeScript. 2020-02-02
Earl Grey An extensible language with pattern matching, hygienic macros and a syntax similar to Python. 2017-08-14
Khepri Lightweight language that reworks Javascript's syntax to be better for untyped functional-style programming. 2015-05-16
Spider Spider is a programming language that compiles to JavaScript (ES5 and ES6 targets). It takes the best ideas of Go, Swift, Python, C# and CoffeeScript. 2017-10-21
CirruScript Write JavaScript with indentations and polish notations, similar to S-Expression but with fewer parentheses. 2020-01-28
TLC Tag Line Commands is a inline macro language for calling+formatting javascript/coffeescript/livescript json output into HTML. 2015-07-26
CokeScript Inspired by Python and Ruby that integrates natively with the Virtual-DOM library 2018-07-05
imba Full-stack programming language for the Web that compiles to performant JavaScript 2020-02-26
Cor Straightforward language for the Web 2016-12-11
Iode A language inspired by Swift 2016-03-28
FutureScript A more radical, but more readable, different new language. 2018-12-11
PearScript Shorthanding JavaScript one more time. 2016-01-28
RamdaScript JavaScript in the Ramda way. 2018-01-23
RoyalScript A functional language that has loops, types, structs, and much more. 2017-03-23

JavaScript Extensions

Security enforcing JavaScript

Name Description
Caja Compiles ES5/strict to ES3 and supports object-capabilities
ADsafe Client-side static verifier and API, making third party scripts safe.
Jacaranda Static verifier supporting object-capabilities.
Dojo Secure Framework for building secure mashups.

Static typing

NOTE: Some of the projects listed below are also statically typed, such as mobl, GWT, JSIL, NS Basic, and Haxe.

Name Description
Dart C/Java-like syntax with optional typing by Google.
TypeScript Typed superset of JavaScript by Microsoft.
TeJaS From Brown PLT. Types for JavaScript (itself).
asm.js Subset of JavaScript that can be used as a low-level, efficient target language for compilers. Now included in Firefox.
JavaScript++ JavaScript superset with classes, type checking, among other features
Mascara [commercial] Enhances JavaScript with powerful features like classes, namespaces and type-checking.
Roy Tries to meld JavaScript semantics with some features common in static functional languages
Elm Type-safe functional language that compiles to HTML, CSS, and JavaScript.
Swym Statically typed, with type inference and generics
Typecast.js JavaScript platform for statically typed variables without a custom compiler.
PureScript A small, strongly typed programming language that compiles to JavaScript and C++, featuring extensible records and effects, and type classes.
Flow Static type checker for JavaScript, supports optional types and null checks by Facebook.
ActionScript With Apache Royale ASJS (formerly FlexJS) - Based on ECMAScript 4, ActionScript provides typing and can be compiled to JavaScript.
ReScript (Formerly BuckleScript) Compiles OCaml, and its syntax extension Reason, to readable JavaScript, enabling powerful static type-checking, among other features.

Synchronous to Asynchronous JavaScript Compilers (CPS)

Name Description
Streamline.js Uses underscore (_) to stand for callbacks. This fork preserves line numbers for debugging.
mobl The new language for programming the mobile web.
StratifiedJS JavaScript + structured concurrency.
NarrativeJS JavaScript extension with asynchronous futures and promises.
jwacs JavaScript With Advanced Continuation Support.
Wind.js Wind.js is an advanced library which enable us to control flow with plain JavaScript for asynchronous programming (and more) without additional pre-compiling steps.
TameJS Adds new keywords 'await' and 'defer'
Continuation.js A lightweight JIT compiler for simplifying asynchronous JavaScript programming with no runtime dependences. It supports both Node.js and browser-side JavaScript and is compatible with CoffeeScript (also TypeScript, and any other scripts compile to js).
Kal Makes asynchronous programming easy and clean by allowing functions to pause and wait for I/O, replacing an awkward callback syntax with a clean, simple syntax
JSPipe Provides JavaScript primitives to write async code without callbacks or chained functions. Inspired by Goroutines and Channels found in Go and in Clojure. For Web and NodeJS. ES5 and ES6.
promiseLand PromiseLand is a very promising Language. It includes ES5 strict mode, uses the * dereferencing operator to access promise results and introduces additional features designed to let you focus on your program logic. Such as dynamic typesafety, frame addressing, generic load and safe features.

JavaScript Language Extensions

Name Description
ContextJS An implementation of Context-oriented Programming for JavaScript.
Objective-J Shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset.
Mochiscript Object-oriented JavaScript with syntactic sugar. Released as a Ruby gem.
jangaroo AS3 (ActionScript) to JavaScript.
Flapjax Event-driven, reactive evaluation.
jLang Adds object oriented syntax, namespaces, operators overriding
Restrict Mode
TIScript Gentle extension of JavaScript
Six Six is a language super-set of JavaScript that enables new syntactic features from the 6th edition of ECMAScript to be used, through a transpiler, in your scripts today.
js-- JavaScript subset for interactive/visual programming.
Latte JS Superset of JavaScript (eventually ES6), with similar goals to CoffeeScript, but keeping JS syntax.
JSX A superset to add an XML-like syntax to represent HTML elements in React by Facebook
oj Objective-C inspired superset of JavaScript with a tiny runtime, built-in obfuscator, and experimental type checker (courtesy of Typescript).
mfjs Adds arbitrary side effects not already available in JavaScript. They may include but not limited to delimited continuations, asynchronous, logic, reactive, parallel, distributed and probabilistic programming. It doesn't extend syntax so it may be used with any other language compiling to JavaScript.

Ruby

Name Description
Opal Ruby to JavaScript compiler.
HotRuby Runs opcode, compiled by YARV on Ruby inside a web browser or in Flash.
ColdRuby Compiler of Ruby 1.9 MRI bytecode, and a runtime written in JavaScript to aid in execution of Ruby code.
rb2js Converts Ruby to JavaScript.
RubyJS A successor to rb2js
Red Writes like Ruby and runs like JavaScript
Quby Used for game coding site, open source.
8ball Ruby-to-JavaScript source-to-source transformer
Ruby2JS Minimal yet extensible Ruby to JavaScript conversion.
ruby-parser.js Original Ruby 2.0 parser ported to pure JavaScript, produces AST

Python

Name Description
Pyodide CPython, the reference Python implementation, compiled to WASM. Also includes the Python scientific stack.
PYXC-PJ [CS friend] Python to JS. Can generate a (line/col)-number mappings file. (Dead. Last updated 8 years ago.)
Pyjamas Python to JS.
Pyjaco Python to JavaScript compiler with module support.
Pyjs Python to (readable) JS.
Skulpt Python. Client side.
PyCow Python to MooTools JS.
PyvaScript Python-like syntax to JavaScript.
RapydScript JavaScript with a Pythonic syntax.
Bulbul Python3 to JavaScript/ES6/ES7 compiler. Apparently the only Python-to-JS compiler intended to provide support for AngularJS, React, Aurelia and other modern JS libs.
Brython Browser Python. Embed Python 3 in