Ex-nunc (pronounced x-noonk) is an open-source framework aimed to help the development of Web based applications. It is written in Objective Caml, a language that is compiled, statically typed, strictly evaluated, and uses automatic memory management. Ex-nunc is designed to exploit these features, trying to detect most of the common programming errors at compile time. This way, the developer wastes less time hunting for misspellings, and has more time for functionality testing of his applications.


These are the most noticeable features of the framework:

  • Strongly-typed page parameters
    Each page can accept a tuple of parameters. Therefore, calling a page works, more or less, like invoking a function. Moreover, the compiler can check the numbers and the types of the arguments.
  • Strongly-typed session
    Session data is stored in an OCaml record, generated at compile time.
  • Strongly-typed form data
    Form data is stored too in an OCaml record, where user input is automatically converted to the right OCaml type.
  • Form validation
    Input validation is performed through validators. Validators provide a mechanism for all common types of standard validation (e.g., verifying that a value can be safely converted to a specific OCaml type, i.e. int, float, etc.). Additionally, validators display custom error information to the user. This feature is mainly inspired by ASP.NET validation controls.
  • Supported environments
    At this time, supported environments are CGI and FastCGI.

Status of the project

At the moment I'm writing this note (2010-03-14), the development of the Ex-nunc project is considered concluded by the authors.


You can download the latest release of Ex-nunc here:

File MD5
ex-nunc_latest_2010-03-14.tar.gz 6ce7df2dcedb37a8582ae6efa3f2e934

This release is considered quite stable and produces a library and a compiler that can compile the included demo.

Contacts and further informations

If you are interested in the Ex-nunc project and you want further informations about the architecture, or you simply want to compile it and you need help, please don't hesitate and contact the authors: and Alessandro Strada.