Ocsigen

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ocsigen
Image illustrative de l'article Ocsigen
Logo

Développeur L'équipe Ocsigen
Environnement Systèmes Unix Mac OS X
Type serveur Web
Licence GNU LGPL
Site web ocsigen.org

Ocsigen est un outil de développement web, développé par le laboratoire français PPS[1], utilisant des solutions nouvelles issues de la recherche sur les langages de programmation.

Il se compose :

  • d'un serveur web complet et extensible. Il est doté de la plupart des fonctionnalités utiles, notamment un module pour exécuter des CGI, un reverse proxy (qui rend possible l'utilisation en tandem avec un autre serveur web), la compression des données, le contrôle d'accès... Il est très facile de l'étendre en créant des modules en OCaml.
  • d'un module appelé Eliom pour écrire des applications Web client/serveur (ou serveur seulement) en utilisant des concepts de haut niveau. Le but est de programmer en très peu de lignes des comportements complexes, et d'assurer une garantie de bon fonctionnement grâce au typage statique. En particulier, on peut choisir un mode de validation statique des pages qui rend quasiment impossible la génération de pages qui ne respectent pas les recommandations du W3C. Ceci est obtenu en exploitant de manière poussée le puissant système de types du langage OCaml. L'ensemble de l'application est écrite en OCaml, et certaines parties sont compilées vers Javascript pour être exécutées dans un navigateur. Eliom prend en charge automatiquement la communication entre le serveur et le client. Le programme client peut utiliser des valeurs définies sur le serveur et l'échange est facilité par le fait que les deux utilisent le même langage, et donc les mêmes types de données.
  • d'un compilateur du langage OCaml vers le langage Javascript, js_of_ocaml. Il permet d'exécuter dans un navigateur des programmes écrits en OCaml, de manière portable et sans rien devoir installer. Le compilateur prend comme langage source le bytecode OCaml, c'est-à-dire un programme OCaml déjà compilé. Cette technique rend l'utilisation du compilateur très simple, et permet même d'utiliser des bibliothèques dont le code source n'est pas disponible.
  • d'une bibliothèque de threads coopératifs lwt, qui permet de programmer des comportements concurrents avec peu de risques de blocage ou d'accès concurrents à la mémoire partagée (coopération entre les threads à des endroits bien identifiés). Elle utilise un style monadique, ce qui rend son utilisation assez transparente.

Ocsigen est utilisé comme plateforme pour plusieurs projets de systèmes de gestion de contenu, comme Lambdium ou Nurpawiki.

Parmi les auteurs d'Ocsigen figurent plusieurs chercheurs en informatique qui utilisent le projet comme base d'expérimentation pour leur recherche.

Le nom Ocsigen est un homophone de l'élément chimique oxygène ; de même, le module Eliom est un homophone de l'élément hélium.

Notes et références[modifier | modifier le code]

Liens externes[modifier | modifier le code]