From: Benedikt Becker <zol@benozol.de>
To: caml users <caml-list@inria.fr>,
ocsigen@sympa.mancoosi.univ-paris-diderot.fr
Subject: [Caml-list] [ANN] Ocsigen: Eliom 3
Date: Mon, 10 Dec 2012 18:33:38 +0100 [thread overview]
Message-ID: <CAOQNeg9iO-cUYm9Qxw6=8MV+WaM78NGD9CveevVA=7ZwJ+WR=w@mail.gmail.com> (raw)
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!" ...
}}
reply other threads:[~2012-12-10 17:33 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAOQNeg9iO-cUYm9Qxw6=8MV+WaM78NGD9CveevVA=7ZwJ+WR=w@mail.gmail.com' \
--to=zol@benozol.de \
--cc=caml-list@inria.fr \
--cc=ocsigen@sympa.mancoosi.univ-paris-diderot.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox