Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "Michael Grünewald" <michipili@gmail.com>
To: caml-list@inria.fr
Subject: [Caml-list] ANN: gasoline 0.1 — Applicative framework for OCaml
Date: Fri, 24 Oct 2014 16:32:26 +0200	[thread overview]
Message-ID: <544A62FA.2000201@gmail.com> (raw)

The Gasoline project aims at implementing a Unix-ish application
development framework for OCaml. The framework will provide application
templates factoring application components bootstrapping, configuration
analyse and offering homogeneous diagnostic facilities.

It can be installed with opam, see below.

It is written by Michael Grünewald and is distributed under the CeCILL-B
license agreement.


Users of Gasoline should be enabled to:

- Rapidly develop applications by using application patterns such as
“Unix filter”, “tabular data processor” or “compiler”.
- Write large software suites whose elements offer homogeneous interfaces.
- Easily pass configuration parameters to an application
- Use standardised diagnostic facilities supporting internationalisation.
- Cleanly distinguish between application components and lower-level
software engineering artifacts.
- Easily bootstrap and shutdown applications consisting of many modules.
- Use common file formats such as CSV or JSON in their applications.

  Github: https://github.com/michipili/gasoline
  Wiki: https://github.com/michipili/gasoline/wiki
  OCamldoc reference:
http://michipili.github.io/gasoline/reference/index.html


0 EXAMPLES

There is three examples of applications using Gasoline in the example
tree. These are:

* punishment, a simple program claiming “It shall not talk in class” and
illustrating the use of configuration parameters and configuration sources.

* wordcount, an over-engineered version of wc illustrating the use of
application components.

* wordgen, a random name generator (as found in Angband for instance)
also illustrating the use of application components.


1 WHAT ARE APPLICATION PATTERNS

Developing a Unix filter — for instance — should require little more
than writing a function

   parameter -> in_channel -> out_channel -> unit

where parameter is a fictional type representing filter parameters. A
goal of Gasoline is to define application templates taking care of all
the house-keeping required by the bootstrapping of an application. This
should increase development speed of applications and ease the
preparation of large software suite presenting a consistent interface.

Some application patterns are scheduled for v0.3, see the issue tracker.


2 WHAT THE LIBRARY ALREADY DO

It implements a poweful configuration parameter framework, see the wiki
page Configuration.

It implements a generic diagnostic facility, allowing fine-grained
control of application diagnostics (like what xdvi does), see the wiki
page GenericDiagnostic.

It implements basic software component management, see the wiki page
Component.


3 HOW TO INSTALL

There is detailed build instructions in the README. There is also an
experimental OPAM package in my opam-repository clone, it works on
FreeBSD, Debian and MacPorts.

  https://github.com/michipili/opam-repository/tree/port/gasoline


4 CLOSINGS

I am looking forward hearing your comments and suggestions about
Gasoline. This is still experimental software and many areas should be
refactored.

-- 
Michael



                 reply	other threads:[~2014-10-24 14:32 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=544A62FA.2000201@gmail.com \
    --to=michipili@gmail.com \
    --cc=caml-list@inria.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