Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2003-11-28 14:35:26

 The new version of my iostreams library can be found at

The library serves two purposes:

- To allow the easy creation of standard C++ stream and stream buffer
classes for new data sources and sinks.
- To provide a convenient interface for defining i/o filters, linking
them together, and attaching them to standard streams and stream buffers.

(See usage examples below.)

As examples of real-world applications, I have included filters based on
Boost.Regex and Jean-loup Gailly's and Mark Adler's zlib compression

The library supports streams for input only, output only and
random-access, as well as double-streams with separate input and output
sequences as in TCP.

It also comes with a collection of adaptors and object generators to
facilitate interaction with the STL.

The library has complete documentation, including a tutorial and
rationale, as well as example programs and a test program. It has been
tested on 12 compiler/standard library combinations on Windows and
Linux. It now works on VC6, with some caveats.

The library shares the namespace boost::io with the i/o state-savers
library and with some functions from Boost.Format.


Usage examples:

        /* Write compressed data to standard output */

    filtered_ostream out;

        /* Read from standard input with 'top' replaced by 'bottom' */

    filtered_istream in;
    in.push(regex_input_filter("\\<top\\>", "bottom"));

        /* Read from a vector */

    vector<char> v;
    filtered_istream in(make_source(v.begin(), v.end()));


I look forward to suggestions and criticism.


Jonathan Turkanis

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