From Wikipedia, the free encyclopedia
Jump to: navigation, search

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

Ocsigen is composed of the following components:

  • 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.
  • 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.

Ocsigen uses the Lwt cooperative threading library in order to handle 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).

See also[edit]

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

External links[edit]