Boost logo

Boost :

From: Jaakko Järvi (jarvi_at_[hidden])
Date: 2008-09-01 01:19:13

The review of Stjepan Rajko's Dataflow library starts today, September 1st,
and will run until September 10th.

Description of the library:

Dataflow is a generic library for dataflow programming. Dataflow
programs can typically be expressed as a graph in which vertices
represent components that process data, and edges represent the flow
of data between the components. As such, dataflow programs can be
easily reconfigured by changing the components and/or the connections.

This review focuses on the Dataflow.Signals layer of the library. For
its data transport mechanism, Dataflow.Signals uses Boost.Signals
which can be used to make lasting dataflow connections based on
function calls. Dataflow.Signals provides the following to facilitate
signals-based dataflow networks:

* A number of useful general-purpose components, and building blocks
  for implementing new components.
* Various free functions and operators for connecting and using components.

The library documentation provides some concrete examples of how
Dataflow.Signals layer can be used. Some examples are:

* Implementing distributed dataflow applications using
  Dataflow.Signals and Boost.Asio
* An image processing network using Dataflow.Signals and Boost.GIL
* A GUI dataflow editor (located in the Dataflow.Blueprint documentation)

While the Dataflow library contains other layers, only the
Dataflow.Signals layer is ready for review. Reviewers are welcome to
provide feedback for any part of the library, but please be aware that
the documentation and implementation for the other layers may be
lacking (for example, there is the generic support layer, which
provides concepts applicable to different dataflow frameworks, and can
be used to develop generic dataflow code, as well as the
Dataflow.Blueprint layer which provides run-time reflection and
modeling of dataflow networks in a Boost Graph Library graph for any
dataflow framework with implemented Dataflow library support). For
the time being, please consider these other layers as implementation
details or proof-of-concept examples, as appropriate.

The library is accessible as a tarball at:

The documentation can be accessed here:

The documentation particular to the Dataflow.Signals layer under review:

Dataflow depends on many existing Boost libraries, such as Fusion and
MPL. The Dataflow.Signals layer builds functionality over
Boost.Signals. The Dataflow library has been tested using a recent
version of the Boost trunk, as well as the 1.35 release. Tests and
examples have been built successfuly on OS X (GCC 4.0, 4.2), Linux
(GCC 4.2), and Windows (MSVC 8.0 and to some degree MinGW GCC 4.2).

Questions you may want to answer in your review:

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any problems?
- How much effort did you put into your evaluation? A glance? A quick reading?
  In-depth study?
- Are you knowledgeable about the problem domain?

In particular, please remember to answer the following question

- Do you think the library should be accepted as a Boost library?

    Jaakko Järvi
    Review Manager

Boost list run by bdawes at, gregod at, cpdaniel at, john at