Ocsigen is a Web server and a programming framework providing a new way to create dynamic Web sites. Its goal is to offer an alternative to Apache/PHP, based on cutting-edge technologies coming from research in programming languages. Ocsigen project has most of the features you expect from a Web server (static pages, CGI scripts, etc.) and also an innovative module, called Eliom, for generating dynamic Web pages. With Eliom, you program in a concise and modular way, with a strong type system which helps you to produce valid xhtml. The server handles sessions, URLs, and page parameters automatically.
Today, most web sites are written using old technologies, such as CGI scripts or (untyped) scripting languages embedded in html. This situation, was acceptable at the time when the web was mainly static. But today, more and more sites are highly dynamic, and web developers experience difficulties every day for creating and maintaining large pieces of code written in such languages. Inspired by theoretical research in computer science and logic, there are now new languages allowing to program in a cleaner way, drastically reducing the time of the debugging process. But up to now these technologies have not been fully exploited in the domain of web programming.
In particular, some recent research papers have shown that functional programming works very well for this domain (use of continuations or closures, continuation passing style ...). Accordingly, Eliom considers each URL as a function taking arguments and producing a web page. Clicking on a link or a form triggers execution of this function.
Another significant issue addressed by Eliom is the generation of valid xhtml pages. The web relies on norms defined by the W3 consortium, and the only means to ensure universal availability of information is to respect these standards. Today, very few web sites are fully standard compliant. Eliom uses an advanced type system that guarantees that your web site will be valid (or very close).
Here are some key features of "Ocsigen":
· Extensible Web server, implemented with cooperative threads
· Extensions for serving static pages, CGI pages, for HTTP redirections, data compression, reverse proxy, etc.
· Eliom web programming framework:
· Continuation-based Web programming
· Static checking of XHTML (using OCaml or OCamlDuce)
· Automatic management of sessions
· Concise and modular programming
What's New in This Release:
· The full set of features planned for the first version are now implemented.
· This release has a fully featured Web server (static pages, CGI scripts, reverse proxy, access control, etc.) and a powerful module (Eliom) to create dynamic Web sites using OCaml.