About Flux
----------

Flux is a survival-through-structure library, whose goal is to reduce the
complexity of C programming and increase code reuse. To this end, it supplies
high-level functions for manipulating data and communication with specialized
handles, masking typically tedious programming tasks. Common instruction
blocks are wrapped in higher-level calls with intuitive names. In short: Do
it once, do it right, then forget about it.

Abstracting things this way involves speed compromises. In Flux, these should
be minimal, and sometimes, when superiour algorithms are easily accessible,
efficiency is actually gained.

Another important goal is bridging gaps between typical tasks - like parsing,
storage, retrieval, buffering and transfer, data structures - like generic
tree structures, generic network structures, XML and presentation formats,
and protocols - like FluxComm, Unix protocols and IRC. (Note: IRC protocols
are hairy and ill-defined. Unification and masking is particularly useful
here).


About this release
------------------

This is version 0.4.1. The fact that it is pre-1.0 means the library is
still a long way from its inteded level of usefulness - there is no promised
functionality (and probably plenty of bugs/features).


Getting updates
---------------

FTP: The latest release version of Flux is always available for download from
     <ftp://ftp.styx.net/projects/flux>.

CVS: Sources can always be checked out anonymously thgough the following
     procedure:

     cvs -d :pserver:anonymous@cvs.styx.net:/cvs login
     (blank password)
     cvs checkout flux

     Developer CVS (write access) is available on request.


Directories and their contents
------------------------------

doc/       General and C API documentation.
src/       C sources.
include/   C includes.
java/      Java documentation, source and bytecode.
util/      Maintainer and user utilities.
examples/  Source examples of Flux use.

The source is split over a hilariously large number of subdirectories,
separating the (arguably) major areas of functionality:

bt/         Balanced binary trees.
build/      Environment information that's built into Flux.
cgi/        CGI utilities.
cipher/     Cryptography and hashing.
comm/     * Flux-native block/tree communication.
fifobuf/    General-purpose FIFO buffering.
log/      * Logging.
mail/       Mail spool processing.
mem/        Memory functions (for debugging, logging and security).
misc/       Miscellaneous. Small functions.
mpi/        Multiple precision integers.
nvtp/       7-bit line-oriented communications.
ph/         Pointer hashes.
proc/       Process control.
proxy/    * Proxies (event multiplexers).
random/     Generating quality entropy.
smtp/       SMTP communications.
sock/     * Wrappers for socket and pipe communication.
fstring/    Extensions to the string functions found in your environment.
tn/         Generic (token) network structures.
tt/       * Generic (token) tree structures.
mt/       * Tree structures specialized for markup data, like XML.
url/        URL handling.
xml/        XML import and export.

(*) Properly documented.

Regrettably, header files and the sources themselves are the only references
available for the other parts of the library. This is something we're
working on.


Supported configurations
------------------------

Should support most Unix-like configurations. You can find reports in
doc/plain/builds/ from the package root.
