
Hi, Back in June I posted some thoughts about what I'd expect from a properly done I/O library.[1] Based on the ensuing discussion I then designed such a library. Over the last months, I've worked hard at implementing the thing. It is with quite a bit of pride, then, that I announce the IOChain preview release 1. You can get the source here: http://stud3.tuwien.ac.at/~e0226430/iochain-preview-1.tar.bz2 There are currently some assumptions in the build files that require a tiny bit of setup. 1) Unpack the source into some directory. 2) Grab the latest Boost trunk. 3) In the unpacked source, make a symlink to the Boost trunk called "realboost". E.g. tar -xjf iochain-preview-1.tar.bz2 cd iochain ln -s /path/to/boost/trunk realboost 4) Add zlib to your user config. If you have zlib where it is easily found, this is as easy as adding this line to ${HOME}/user-config.jam: lib zlib : : <name>z ; I'm sorry for the inconvenience. Documentation is in quickbook format. A generated version is available here: http://stud3.tuwien.ac.at/~e0226430/iochain/ This is a preview release. Its only purpose is to get comments. It has not seen widespread compiler testing yet (only GCC 4.1 on a 64-bit Linux). Features implemented so far: - The infrastructure. - File I/O (POSIX only - a Win32 implementation exists, but hasn't seen a compiler yet, so don't expect it to compile, much less work) - In-memory I/O (fixed buffers and std::vector). - Read-ahead and write-collect buffers (like buffering in the current streams). - Various tools to support backtracking. - Combining bytes into larger types. (Only naive methods currently.) - On-the-fly CRC calculation. - On-the-fly zlib compression. The ultimate goal of the library is to completely replace iostreams. All discussion, suggestions, and criticisms are welcome. Sebastian Redl [1] http://lists.boost.org/Archives/boost/2007/06/123478.php