Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Opa is a functional programming language for the Web, that compiles to JavaScript. There are real applications fully developed with Opa such as the PEPS Communication Platform, RiskyBird and many others.

Opa is made of two parts:

  • A compiler from the Opa language, which features JavaScript-like syntax but introduces many enhancements;
  • A JavaScript library, which is used at runtime.

This repository contains all the sources of both the Opa compiler and the Opa library.


Opa is open source. The compiler is released under the AGPL license, the library under the MIT license.

Applications written with Opa only include the library part, so you are free to release applications written with Opa under any proprietary or open source license.

If you want to create an online "cloud" application platform that includes the Opa compiler, you need to release the sources under the AGPL license as per the AGPL license terms.

Read both licenses.


To learn more about Opa, please visit and the take the tour.

Getting Started

Check out the dedicated guide to install Opa and start to code.

Quick build instructions

$ ./configure
$ make
$ sudo make install

Read more about building Opa or the directory layout.


All bug reports, feedback, comments, contributions or remarks are welcome.

In particular, users are welcome to subscribe on the mailing list at OWASP.

For more information, please consult the opalang portal.