January 2016 Ocsigen releases

Written by The Ocsigen team on February 01, 2016

We are excited to announce the releases of

These releases are the result of many months of work by the Ocsigen team, and bring a range of improvements.

PPX

Eliom 5.0 comes with a PPX-based language (for OCaml 4.02.x). This follows our PPX extensions for js_of_ocaml and Lwt. The new syntax is more flexible than our previous Camlp4-based one, and we recommend it for new projects. Nevertheless, the Camlp4-based syntax remains available.

Shared reactive programming

Recent versions of Eliom provided client-side support for (functional) reactive programming. Eliom 5.0 additionally supports “shared” (client-server) reactive programming, where the reactive signals have meaning both on the server and the client. This means that the initial version of the page is produced (on the server) with the same code that takes care of the dynamic updates (on the client).

Enhanced js_of_ocaml library

The js_of_ocaml library provides additional bindings for established JavaScript APIs. This includes

A new JavaScript-specific table module is also available.

ppx_deriving

js_of_ocaml provides a new JSON plugin for ppx_deriving. This can be used for serializing OCaml data structures to JSON in a type-safe way. The plugin remains compatible with its Camlp4-based predecessor with respect to the serialization format.

Under the hood

In addition to providing various fixes, we have improved the performance of various Ocsigen components. Notably:

A range of patches related to request data result in measurably smaller size for the produced pages.

The js_of_ocaml compiler becomes faster via improvements in bytecode parsing.

reactiveData employs diffing to detect data structure changes, leading to more localized incremental updates.

Community

The Ocsigen team always welcomes your feedback and contributions. Stay in touch via GitHub and our mailing list!