caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] ANN: gasoline 0.1 — Applicative framework for OCaml
@ 2014-10-24 14:32 Michael Grünewald
  0 siblings, 0 replies; only message in thread
From: Michael Grünewald @ 2014-10-24 14:32 UTC (permalink / raw)
  To: caml-list

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



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

only message in thread, other threads:[~2014-10-24 14:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-24 14:32 [Caml-list] ANN: gasoline 0.1 — Applicative framework for OCaml Michael Grünewald

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).