Multi-tier programming for Web and mobile apps

Android, iOS, Server & client in one piece of code

Powerful type-checking with OCaml/Reason

Get started now!

News

html_of_wiki

We are happy to release the first public version of html_of_wiki.

html_of_wiki is a versatile, minimalist yet powerful static website generator. It is designed with simplicity in mind: no special directories, almost no configuration and everything working out of the box. No web server required, just the compilation of your content to HTML and you're free to choose which static files server service fits you: GitHub Pages, GitLab Pages, etc.

html_of_wiki is used to generate this Web site.

More info about html_of_wiki.

Send us your feedback and bug reports about the Web site on Github.

Releases

We have recently released the following Ocsigen packages: Ocsigen Start 1.3.0, Ocsigen Toolkit 2.0.0, Eliom 6.5.0, Js_of_ocaml 3.3.0, Lwt 4.1.0, Ocsigen Server 2.11.0, TyXML 4.3.0

The releases restore compatibility with the latest OCaml and as usual bring about a fair amount of bugfixes end enhancements.

Everything is available in opam. `opam install ocsigen-start` will pull in all the other packages.

Eliom

Multi-tier language for multi-platform apps

Eliom extends OCaml/Reason into a multi-tier language making it possible to write your whole application (client and server parts) as a single program!

It can run as a Web app, or as a mobile app (based on Web technologies).

Multi-tier

Js_of_ocaml

Optimizing compiler for OCaml/Reason to Javascript

Js_of_ocaml translates your OCaml or Reason programs to Javascript. You can choose between readable or optimized JavaScript.

Js_of_ocaml operates from compiled OCaml bytecode programs. You don't even need the source code, and you don't need to recompile all the OCaml libraries you use.

Easy interfacing with Javascript libraries.

let fib num =
  let rec aux num prec2 prec =
    if num = 0
    then prec
    else
      aux (num - 1) prec (prec + prec2)
  in aux num 1 1
function fib(num)
 {var num$0=num,prec2=1,prec=1;
  for(;;)
   {if(0 === num$0)return prec;
    var
     prec$0=prec + prec2 | 0,
     num$1=num$0 - 1 | 0,
     num$0=num$1,
     prec2=prec,
     prec=prec$0;
     continue}}
function(d){var b=d,c=1,a=1;for(;;){if(0===b)return a;var b=b-1|0,e=a+c|0,c=a,a=e;continue}};

Main projects

Js_of_ocaml

Optimizing compiler from OCaml/Reason to Javascript.

Eliom

Multi-tier language and framework for multi-platform apps.

Server

Full-featured and extensible Web Server.

Lwt

Cooperative threading library.

Tyxml

Static type-checking for HTML and SVG.

Ocsigen Toolkit

Native OCaml widgets for browsers (client side only or client-server).

Start

A full-featured app to use as code example for your own projects.

Users

Here is a short list of users:

Tell us if you want (or do not want) to appear in this list.