User:Vebolo/Ocsigen

Ocsigen is a web and mobile development framework developed by the research laboratory IRIF and the company Be Sport SAS.

It contains:


 * an OCaml to Javascript compiler, js_of_ocaml. It allows programs written in OCaml to be run in a browser, in a portable way and without having to install anything. The compiler takes OCaml bytecode as its source language, i.e. an OCaml program that has already been compiled. This technique makes the compiler very easy to use, and even allows the use of libraries whose source code is not available.
 * a multi-tier extension of the OCaml language, which enables a client-server application to be programmed as a single program with annotations.
 * a framework, called Eliom, for writing client/server (or server-only) Web and mobile applications using high-level concepts. The aim is to program complex behaviors in very few lines, and to guarantee correct operation thanks to static typing. In particular, we can choose a static page validation mode that makes it virtually impossible to generate pages that do not comply with W3C recommendations. This is achieved by making extensive use of the powerful OCaml language type system. The entire application is written in OCaml, and certain parts are compiled into Javascript for execution in a browser. Eliom automatically handles communication between the server and the client. The client program can use values defined on the server, and the exchange is facilitated by the fact that both use the same language, and therefore the same data types.
 * a cooperative threads library, Lwt, which enables concurrent behaviour to be programmed with little risk of blocking or concurrent access to shared memory (cooperation between threads at clearly identified points). It uses a monadic style, which makes its use fairly transparent.
 * a complete, extensible Web server. It has most of the useful features, including a reverse proxy (which makes it possible to use it in tandem with another web server), data compression, access control... It is very easy to extend by creating modules in OCaml.

Eliom is used as a platform by the Be Sport social network and for several content management system projects, such as Lambdium and Nurpawiki.

The Ocsigen Js_of_ocaml compiler is used by many projects, including Facebook's Hack compiler.

The authors of Ocsigen include several computer science researchers who are using the project as a basis for experimentation in their research.

Liens externes

 * Site du projet
 * Site de l'Institut de Recherche en Informatique Fondamentale (IRIF)
 * Site de Be Sport