Parenscript is a translator from an extended subset of Common Lisp to JavaScript. Parenscript code can run almost identically on both the browser (as JavaScript) and server (as Common Lisp).

Parenscript code is treated the same way as Common Lisp code, making the full power of Lisp macros available for JavaScript. This provides a web development environment that is unmatched in its ability to reduce code duplication and provides advanced metaprogramming facilities to web developers.

At the same time, Parenscript is different from almost all other "language X" to JavaScript translators in that it imposes almost no overhead.

License: BSD


Parenscript is available in Quicklisp since version 2.1 (at least).

It is a kind of s-exp syntax for Javascript.

Live coding

Trident-mode is an Emacs mode for live Parenscript interaction.

More precisely it is a minor mode and a collection of commands for working with Parenscript code in SLIME and sending it to the browser via Skewer. The goal is to create an environment for hacking Parenscript which fits as naturally as possible into the Lisp style of interactive development. It can also open a Javascript REPL connected to the browser and connect to a page the server of which you don’t control.

TodoMVC example

This Todo MVC example is implemented in Parenscript, using the Panic wrapper around React.