caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] [ANN] Ocsigen: Eliom 3
@ 2012-12-10 17:33 Benedikt Becker
  0 siblings, 0 replies; only message in thread
From: Benedikt Becker @ 2012-12-10 17:33 UTC (permalink / raw)
  To: caml users, ocsigen

Dear OCamlers,


we are celebrating Ada's birthday by bringing out a major update of
Eliom - the advanced framework for client/server web applications in
OCaml - and some minor updates for Ocsigenserver and Tyxml.

Here is a list of major new features (and short code snippets can be
found at the end of this email):

 * The tightest integration of client value within the server code
   ever made possible in a major statically typed programming
   language [1]

 * Easy access to top-level server values - and (Lwt-)functions -
   from within the client code [2]

 * Access to other users' states of Eliom references

 * Improved support of Eliom's source files in the compilation tools
   eliom{c,opt,dep}

 * A new tool, eliom-destillery, for creating basic projects fast &
   easy

The manual, a cheat-sheet, a comprehensive tutorial, and the
API-documentation of the various Ocsigen projects are available on

 * http://ocsigen.org

The probably simplest and most generic way to install Eliom is by
using OPAM. But also Debian packages are already available (in
experimental, thanks Stéphane!), Gentoo-ebuilds are on their way, the
Ocsigen-bundle is still at hand, and the archives can be found at

 * http://ocsigen.org/eliom/install

And maybe you may want to become social with us on

 * https://twitter.com/ocsigen
 * https://plus.google.com/u/0/105890612060116987398/posts
 * https://www.facebook.com/pages/Ocsigen/289974521051526

Enjoy!

-- The Ocsigen-team


[1]
{server{ (* This marks server-side code *)
  let value_history_on_client =
    {ref string{ ref [] }} (* A client value within the server code *)
  let _ = My_app.register_service ~path ~get_params
    (fun value () ->
      (* Push the GET parameter to the client's history a side effect *)
      ignore {unit{
        %value_history_on_client := %value :: ! %value_history_on_client
      }};
      Lwt.return html)
}}

[2]
{server{
  let f = server_function Json.t<string>
    (fun x -> Printf.eprintf "Client says: %s\n%!" x; Lwt.return ())
}}
{client{ (* This marks client-side code *)
  (* %f makes the server's value f, a client-ready server function,
     available in the client code *)
  ... %f "hello!" ...
}}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-12-10 17:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-10 17:33 [Caml-list] [ANN] Ocsigen: Eliom 3 Benedikt Becker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).