This project includes several libraries/applications, that can either be used jointly or separately:
FLUTE C++ Library
The FLUTE tool is a content distribution application that follows the RFC 3926 specification. It relies on:
the FLUTE library (see below);
ALC, the underlying reliable transport protocol, implemented as a library that is linked by the FLUTE tool;
the LDPC, Reed-Solomon and Null-Code FEC codes. All these codes are implemented as libraries linked by the FLUTE tool;
the SDP library (SinisterSdp 0.80; Copyright 2004 by William G. Davis);
the XML library (xerces-c v2.7.0; Copyright 1999-2004 The Apache Software Foundation);
the FLID-SL (default) and RLC congestion control protocols for Internet (and shared routed network) transmissions;
The FLUTE tool is a ready to use, built-in application that is sufficient in many situations. Otherwise, a dedicated FLUTE application, tailored to a specific use case, can easily be built using the FLUTE library as explained below.
The FLUTE object oriented C++ library implements all the FLUTE internals, including the transmission carousel (sender) and FLUTE FDT database. Dedicated FLUTE applications can be easily written directly on top of the FLUTE API for full control over the session, or in order to easily integrate it into external control applications.
A small example of a FLUTE sender (valid with distributions 3.0 and higher):
That’s all. Several other examples are available in the distribution, in the check/flute directory.
The FCAST tool is a very simple content distribution application. It can be used in all environments where conformance to standards is not mandatory. Unlike FLUTE, there is no XML/SDP support which greatly simplifies the solution. Metadata are attached to each object sent during the session (instead of being carried independantly in FDT objects in FLUTE). See the FAQ for more pros/cons.