Clojurescript - Clojure to JS compiler

  •        62

ClojureScript is a compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler. ClojureScript combines the reach of the JavaScript platform, the flexibility and interactive development of Clojure, and the whole-program optimization of Google Closure to provide the most powerful language for programming the web.

https://clojurescript.org/
https://github.com/clojure/clojurescript

Tags
Implementation
License
Platform

   




Related Projects

garden - Generate CSS with Clojure

  •    Clojure

Garden is a library for rendering CSS in Clojure and ClojureScript. Conceptually similar to Hiccup, it uses vectors to represent rules and maps to represent declarations. It is designed for stylesheet authors who are interested in what's possible when you trade a preprocessor for a programming language. Garden 1.2.5 and below requires Clojure 1.6.0 and is known to work with ClojureScript 0.0-2342. However, starting with Garden 1.3.0 Garden requires Clojure 1.7 and ClojureScript 1.7.x to leverage a unified syntax with reader conditionals, and other major changes in the compiler and repl in Clojurescript.

lumo - Fast, cross-platform, standalone ClojureScript environment

  •    Clojure

Lumo is a standalone ClojureScript environment that runs on Node.js and the V8 JavaScript engine. It starts up instantaneously and has out-of-the-box access to the entire Node.js ecosystem. Lumo also provides a ClojureScript build API, making it possible to compile ClojureScript projects entirely without the JVM, thanks to the experimental JavaScript version of the Google Closure Compiler.

lein-cljsbuild - Leiningen plugin to make ClojureScript development easy.

  •    Clojure

This is a Leiningen plugin that makes it quick and easy to automatically compile your ClojureScript code into Javascript whenever you modify it. It's simple to install and allows you to configure the ClojureScript compiler from within your project.clj file. The latest version of lein-cljsbuild is 1.1.7. See the release notes here.

Jsweet - A transpiler from Java to TypeScript/JavaScript

  •    Java

JSweet leverages TypeScript to write rich and responsive Web applications in Java through the use of JavaScript libraries and frameworks. With JSweet, Java programs are transpiled (source-to-source compiled) to TypeScript and JavaScript for being run in browsers, mobile Web views, or in Node.js.

clojurem - Clojure to Objective-C compiler

  •    Clojure

ClojureM is a compiler for Clojure that targets Objective-C. This is based off ClojureScript. All original licenses apply.


Bridge - :spades: C# to JavaScript compiler

  •    Javascript

Bridge.NET is an open source C#-to-JavaScript Compiler. Write your application in C# and run on billions of devices.Compile your C#...

closure-compiler-js - Package for the JS version of closure-compiler for use via npm

  •    Javascript

Check, compile, transpile, optimize and compress JavaScript with Closure Compiler in JS

SoundManager2 - A JavaScript Sound API supporting MP3, MPEG4 and HTML5 audio + RTMP, providing reliable cross-browser/platform audio control in as little as 12 KB

  •    Javascript

By wrapping and extending HTML5 and Flash Audio APIs, SoundManager 2 brings reliable cross-platform audio to JavaScript.An Ant build file defines the tasks for compiling JS and SWF components, useful if you make changes to the SM2 source and want to recompile. Google's Closure Compiler is used for the JS. AS2 compilation is done by MTASC, and AS3 is handled by Adobe's Open Source Flex SDK (mxmlc) compiler. Refer to build.xml for compiler downloads and path definitions.

Bucklescript - A backend for the OCaml compiler which emits JavaScript.

  •    OCaml

BuckleScript leverages the existing OCaml compiler and toolchain to produce JavaScript that closely resembles the original OCaml. It isn't a new language. It simply takes OCaml, a fast, pragmatic and typed language, and makes it compile to clean, readable and performant JavaScript code. This allows the users to write in an industrial-strength language while using the existing, familiar JavaScript tools (npm/yarn, bundlers, minifiers, devtools, etc.) and accessing the vast ecosystem from both JavaScript and OCaml.

scala-js - Scala.js, the Scala to JavaScript compiler

  •    Scala

This is the repository for Scala.js, the Scala to JavaScript compiler. Scala.js is distributed under the Scala License.

closure-compiler-handbook - How to use Google's Closure Compiler

  •    

This handbook is designed to help you understand how to use Closure Compiler and learn its features. The Closure Compiler is a tool for making JavaScript download and run faster. Instead of compiling from a source language to machine code, it compiles from JavaScript to better JavaScript. It parses your JavaScript, analyzes it, removes dead code and rewrites and minimizes what's left. It also checks syntax, variable references, and types, and warns about common JavaScript pitfalls.

webpack-closure-compiler - Google Closure Compiler plugin for Webpack

  •    Javascript

Closure Compiler is the most advanced JavaScript optimization tool. It generates smallest bundle and emits efficient JavaScript code by doing whole program analysis and optimization, removing closures and inlining function calls, as well as tree-shaking for AMD, CommonJS and ES2015 modules. While there's JavaScript version of Closure Compiler, the original compiler is written in Java and thus Java version is more complete and performs better in terms of JavaScript code optimizations and compilation speed. If you want to use Java-based compiler, make sure you have installed Java SDK.

cuttle - User Interface for the ClojureScript Compiler

  •    Javascript

Cuttle is a standalone application that aims to be the simplest way to use ClojureScript. It provides a user-friendly interface, allowing you to build projects by clicking a button, and to see meaningful warnings and errors at a glance. In a way, it provides the "builder" parts of an IDE without making you leave your favorite editor. Under the hood, Cuttle is not hiding a lot of magic from you. It uses standard ClojureScript workflow tools to perform its operations. It uses Leiningen with the lein-cljsbuild plugin listed in your project.clj, and the mies template for creating new projects. Thus, it should produce the same expected behavior as these standard tools.

CoffeeScript - Little language that compiles into JavaScript

  •    Javascript

CoffeeScript is a little language that compiles into JavaScript. It's just JavaScript, the code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable and pretty-printed, will work in every JavaScript runtime, and tends to run as fast or faster than the equivalent handwritten JavaScript.

clojurec - A Clojure implementation on top of C

  •    Clojure

This is compiler for the Clojure programming language that targets C as a backend. It is based on ClojureScript and was started off ClojureScript's commit 0e0aa7fdd379649bf87f8fff5c6a64e37fe616a4. We use a Trello board to keep track of ideas, proposals, TODOs, bugs and who's doing what. If you plan to contribute, please do join the board.

UI Compiler .NET - JavaScript compiler/minifier built on Google Closure Compiler

  •    Javascript

A compiler/minifier for JavaScript, built on Google Closure Compiler and YUI Compressor. It provides a .NET component for integration and a windows UI, allowing compilation of multiple source files in to one single file.

datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS

  •    Clojure

An immutable in-memory database and Datalog query engine in Clojure and ClojureScript. DataScript is meant to run inside the browser. It is cheap to create, quick to query and ephemeral. You create a database on page load, put some data in it, track changes, do queries and forget about it when the user closes the page.

jss - JSS is an authoring tool for CSS which uses JavaScript as a host language.

  •    Javascript

JSS is a more powerful abstraction over CSS. It uses JavaScript as a language to describe styles in a declarative and maintainable way. It is a high performance JS to CSS compiler which works at runtime and server-side. This core library is low level and framework agnostic. It is about 6KB (minified and gzipped) and is extensible via plugins API. Feel free to ask any JSS related questions on twitter by using hashtag #cssinjs and mentioning @oleg008, watch my latest talk about "Unique Value Proposition of CSSinJS" and try it on a playground.

JSIL - CIL to Javascript Compiler

  •    CSharp

JSIL is a compiler that transforms .NET applications and libraries from their native executable format - CIL bytecode - into standards-compliant, cross-browser JavaScript. You can take this JavaScript and run it in a web browser or any other modern JavaScript runtime. Unlike other cross-compiler tools targeting JavaScript, JSIL produces readable, easy-to-debug JavaScript that resembles the code a developer might write by hand, while still maintaining the behavior and structure of the original .NET code.For live demos and code samples, visit the website.

continuation - A compiler for JavaScript asynchronous Continuation-Passing Style transformation

  •    Javascript

Continuation.js is a compiler for Continuation-Passing Style transformation, which simplifies asynchronous JavaScript programming. It translates slightly flavored JavaScript syntax into standard JavaScript, so it can be also called a "translator". Continuation.js introduces a virtual function cont, which allow you to write continuation-passing style code (or asynchronous callback style code) far easier. cont is not a actual function, but a mark with the same syntax to function calls in JavaScript. By using Continuation.js you can write asynchronous control flows like flat threaded code, and it compiles it into continuation-passing style code. The code above is flatted by using the virtual function cont. Control flow must "wait" for the return of asynchronous function call fs.readFile. Parameters in the argument list of cont will be set after it returns. "Return" here is a little confusing because in an asynchronous function "return" means callback function called, not "return" in the literal sense. An asynchronous function usually returns immediately (by encountering return statement or the end of the function scope) while the callback function could be called later. You can be understood as all the statements after cont until the end of the function are the callback function of the asynchronous function call. The code feels like threaded code, but it is still asynchronous while executing.