From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id A8AC37FD90; Tue, 13 Dec 2016 14:16:50 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=ocsigen@vasilis.airpost.net; spf=Pass smtp.mailfrom=ocsigen@vasilis.airpost.net; spf=None smtp.helo=postmaster@out1-smtp.messagingengine.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of ocsigen@vasilis.airpost.net) identity=pra; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ocsigen@vasilis.airpost.net"; x-sender="ocsigen@vasilis.airpost.net"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of ocsigen@vasilis.airpost.net designates 66.111.4.25 as permitted sender) identity=mailfrom; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ocsigen@vasilis.airpost.net"; x-sender="ocsigen@vasilis.airpost.net"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@out1-smtp.messagingengine.com) identity=helo; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ocsigen@vasilis.airpost.net"; x-sender="postmaster@out1-smtp.messagingengine.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AB+ULUB8ud/+2of9uRHKM819IXTAuvvDOBiVQ1KB+?= =?us-ascii?q?0+sXIJqq85mqBkHD//Il1AaPBtSArawYwLCO+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFGiTanYL5/Ixq6oRvNusILnYZsN6E9xwfTrHBVYe?= =?us-ascii?q?pW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbf?= =?us-ascii?q?VwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8rxmQwH0hi?= =?us-ascii?q?gZKzE58XnXis1ug6JdvBKhvAF0z4rNbI2IKPZyYqbRcNUHTmRDQ8lRTTRMDIC8?= =?us-ascii?q?YYURAOUPMvpXoY7gqVUAtha+GQuhCfnzxjJSmnP736s32PkhHwHc2wwgGsoDv3?= =?us-ascii?q?vOo9XuNacSVeG1zLLVxjvZdfxWwS3y6JbSfRA6oPGMWax/ccvWyUkyCgjIiVKQ?= =?us-ascii?q?ppD+PzOU2eQCrW6b4vF+Ve21kG4nqgVxojm0xss2kIbJh5gVykjD9SVi3IY5P9?= =?us-ascii?q?u4R1BnYdO9FpZbqi+UN4xzQsw4QmFovj43yrwAuZ6hfSgF0o4rxxDFa/CfdIiH?= =?us-ascii?q?/gnjVOeeIThmgnJpYrW/hwy98US4xe38V9W00FZXriVeiNXDqncN1xnL5siJUP?= =?us-ascii?q?ty4Fmu2TCI1w/O9O5IO0Y0mrTHK5Mn37U+lYITvFzCEyL3gkn6kbKaelg+9uWn?= =?us-ascii?q?8ejrfLXrq5mBPIFukA7+KL4hmsmnDOQ4LAcOW2+b9Py71L3+4U31XaxGjuYzkq?= =?us-ascii?q?nFqJDWP8EbqbCiAw9OyIkj5Be/DzGp0NsGm3kHI1NFeBSZgITzJ17OJ/X4Ae++?= =?us-ascii?q?g1Sqjjhr2+jLM7zgD5nXM3TPjartcaxy5kJG1gY+zchT55dOBbEAJPLzVFXxtN?= =?us-ascii?q?vdDhIhNAy73/3nCNRy1owAX2KCGbGZP7nJsV+J4uIvIvKMaJUPtzb8Mfgl//nu?= =?us-ascii?q?jWQlmVMHe6mmw4cXZGiiHvt6O0WZfWbsgtAZHGgWpAU+SejqhESGUT5SfHayQ7?= =?us-ascii?q?kx5io7CYKjFYfMXJqhgL2H3CehH51ZfHpKCl6WEX3wbYWLR+8MaD6OIs9mijEE?= =?us-ascii?q?UqSuS5Qg1RGhqgD6zaFqLvHU+y0drZLszsJ55+zVlREo9Dx7Fd6R02+XTzI8om?= =?us-ascii?q?RdYDQt3a9ypwR5y0yfmfx/iOdZGtFVz/JPSAYzc5DGmagyANn3XkfFf8yVYFeg?= =?us-ascii?q?WNSvRz8rHfwrxNpbXU9mGtGjlVj71jKjHbYOlriGBZspuvbb1GPwKMt742jPz6?= =?us-ascii?q?gljkJgS8pVLWq9muh5+hSFVN2BqFmQi6v/LfdU5yXK7mrWiDPW5Ew=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ACCQBl9E9YfRkEb0JdGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBFAEBAQEBAQEBAQEBBwEBAQEBgwwBAQEBAXl3D7lnggkphS6CP0E?= =?us-ascii?q?SAQEBAQEBAQEBAQESAQEWLzBCAQEBAgEKAoFfGgGCRB0uDDQCJgIuGxYBiGIBA?= =?us-ascii?q?xcOqmiCKIMTg1gCSAWDWgEBCAEBAQEBGwiBC4c4hmYeBIJiCy0tgjCacIZQmyO?= =?us-ascii?q?SISYCgU8nhUY9NAGBOU6COIF/gi4BAQE?= X-IPAS-Result: =?us-ascii?q?A0ACCQBl9E9YfRkEb0JdGQEBAQEBAQEBAQEBBwEBAQEBFAE?= =?us-ascii?q?BAQEBAQEBAQEBBwEBAQEBgwwBAQEBAXl3D7lnggkphS6CP0ESAQEBAQEBAQEBA?= =?us-ascii?q?QESAQEWLzBCAQEBAgEKAoFfGgGCRB0uDDQCJgIuGxYBiGIBAxcOqmiCKIMTg1g?= =?us-ascii?q?CSAWDWgEBCAEBAQEBGwiBC4c4hmYeBIJiCy0tgjCacIZQmyOSISYCgU8nhUY9N?= =?us-ascii?q?AGBOU6COIF/gi4BAQE?= X-IronPort-AV: E=Sophos;i="5.33,341,1477954800"; d="scan'208";a="204318861" Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2016 14:16:49 +0100 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id B460420739; Tue, 13 Dec 2016 08:16:45 -0500 (EST) Received: from web6 ([10.202.2.216]) by compute3.internal (MEProxy); Tue, 13 Dec 2016 08:16:45 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=airpost.net; h= content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= mesmtp; bh=gqUPCfD5sW8wYk9wgAplmlOOmfs=; b=LaR1LtpWn3FnSXj9B9HBj +7Zv7yIintnJ7RS2JKkabQmfUW6D4Y1Bo/S2b8N6HGH/tSuO7ckB515truRE3328 MBnVFAGhGxpr4BOd5MoyToyLeE6fvUalE++jCZ3a8UesbUvY7P6XGcDAeET5N5uW COAq9DFYFNDof0mzpdsnUQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=smtpout; bh=gqUPCfD5sW8wYk9wgAplmlOOm fs=; b=Cg5+byppcelpLxFi03p4YEcTkHluq54Tv+DlhpEnP6lL04mzDh+yk61G1 oR1OYCeKwUoGVZCCMDL+9tPl24mPZYAa6vNEa+1SWIno2l+STGbwQQ8dtUxY2Ij3 EQ/QxPzt6M+xUuatG/TSzTpgCsLVtzAReqARelJsg0MTBz5UL4= X-ME-Sender: Received: by mailuser.nyi.internal (Postfix, from userid 99) id 937AB48001; Tue, 13 Dec 2016 08:16:45 -0500 (EST) Message-Id: <1481635005.211435.817487137.30962AB1@webmail.messagingengine.com> From: Vasilis Papavasileiou To: Ocsigen list , caml-list@inria.fr MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" X-Mailer: MessagingEngine.com Webmail Interface - ajax-9be5b4de Date: Tue, 13 Dec 2016 14:16:45 +0100 X-Validation-by: ocsigen@vasilis.airpost.net Subject: [Caml-list] Eliom 6.0: mobile and Web apps in OCaml We are very happy to announce the release of Ocsigen Eliom 6.0 [1], which follows the recent releases of Ocsigen Server 2.8 [2] and Ocsigen Js_of_ocaml 2.8.x [3]. New features include a friendlier service API that retains the expressive power of our service system. Additionally, Eliom can now be used to build cross-platform Web/mobile applications (Android, iOS, ...). ## What is Eliom? Eliom is a framework for developing client/server web applications. Both the server and the client parts of the application are written in OCaml, as a single program. Communication between server and client is straightforward, e.g., one can just call a server-side function from client-side code. Eliom makes extensive use of the OCaml language features. It provides advanced functionality like a powerful session mechanism and support for functional reactive Web pages. ## Friendly service APIs Services are a key concept in Eliom, used for building the pages that are sent to the user, for accessing server-side data, for performing various actions, and so on. Eliom 6.0 provides a friendlier API for defining and registering services, thus making Eliom more approachable. The new API makes extensive use of OCaml's GADTs, and provides a single entry-point that supports most kinds of services (`Eliom_service.create`). For more information, refer to the Eliom manual [4]. ## Mobile applications Eliom 6.0 allows one to build applications for multiple mobile platforms (including iOS, Android, and Windows) with the same codebase as for a Web application, and following standard Eliom idioms. To achieve this, we have made available the Eliom service APIs on the client [5]. Thus, the user interface can be produced directly on the mobile device, with remote calls only when absolutely necessary. To build an Eliom 6.0 mobile application easily, we recommend that you use our Ocsigen Start [6] project, which provides a mobile-ready template application. Ocsigen Start is currently available in OPAM as a preview, with an 1.0 release coming soon. ## Compatibility Eliom 6.0 supports the last 3 major versions of OCaml (4.02 up to 4.04). Additionally, Eliom is compatible with and builds on the latest Ocsigen releases, including Ocsigen Server 2.8, Js_of_ocaml 2.8.x, and TyXML 4.0.x. ## Future The Ocsigen team is busy working on new features. Notably, we are developing an OCaml compiler [7] specifically tuned for Eliom. Additionally, we are planning a transition to the Cohttp backend. ## Support - Migration guide: https://ocsigen.org/eliom/Eliom60 - Issue tracker: https://github.com/ocsigen/eliom/issues - Mailing list: https://sympa.inria.fr/sympa/info/ocsigen - IRC: `#ocsigen` on `irc.freenode.net` [1]: https://github.com/ocsigen/eliom/releases/tag/6.0.0 [2]: https://github.com/ocsigen/ocsigenserver/releases/tag/2.8 [3]: https://github.com/ocsigen/js_of_ocaml/releases/tag/2.8.3 [4]: https://ocsigen.org/eliom/dev/manual/server-services [5]: https://ocsigen.org/eliom/manual/clientserver-services [6]: https://github.com/ocsigen/ocsigen-start [7]: https://github.com/ocsigen/ocaml-eliom