Open main menu

Ocsigen is a mobile and Web application framework based on concepts derived from recent research in the field of programming languages, namely that of multi-tier programming and continuation-based web programming. It is developed in OCaml, which is also the target language for users of this framework.

Ocsigen is developed by the IRIF research laboratory (CNRS and University Paris Diderot) and Be Sport.

Ocsigen is composed of the following components:

  • A multi-tier extension of OCaml, allowing to implement both the server and client parts of a Web and mobile application as a single program.
  • A module named Eliom for the creation of dynamic web sites using high-level abstractions. Its goal is to allow the implementation of complex behaviour using only a handful of lines, while ensuring correctness thanks to strong static typing. In particular, programmers may choose a page generation mode which enforces the output to comply with the recommendations of the W3C. This feature relies heavily on the strong static typing features of the OCaml language. Eliom allows for the entire application (both server side and client side) to be written in OCaml; compiling part of the code to JavaScript so as to be executed inside a Web Browser. Client-server bidirectional communication is abstracted away by Eliom. Data exchange between client and server is facilitated by the fact that both are implemented using the same programming language and therefore the same data types.
  • A JavaScript compiler from OCaml to JavaScript named js_of_ocaml. It makes it possible to run OCaml programs in a Web browser, with portability and without having to install anything. The compilator takes as input language an OCaml bytecode, that is a compiled OCaml program. It allows you to use existing OCaml libraries whose source code isn't available.
  • A cooperative threads library named lwt.
  • A complete and extensible Web server, supporting features such as CGI, a reverse proxy, data compression, and access control. Extensions for this server may be written in Ocaml.
  • Lwt, a cooperative threading library for handling concurrency.

The word Ocsigen is a homophone of the French Oxygène (the chemical element Oxygen). Similarly, Eliom is a homophone of Hélium (the chemical element Helium).



Ocsigen is used by the Be Sport social network, by Facebook Hack[1] and many other small projects.

See alsoEdit

  • OCaml, the programming language used by Ocsigen
  • Seaside, a Web application framework for Smalltalk which is also continuation-aware


External linksEdit