=============
 About Rayon
=============

Rayon  is a data visualization library written in Python. Rayon is part
of the SiLKScreen project, which aims to add data visualization
capabilities to the SiLK tools, and to integrate visual analysis of
SiLK data with other data sources.

Rayon has the following design goals:

   * Provide a unified visualization API for other NetSA
     projects. (Principally iSiLK and the Analysis Portal.)

   * Enable the creation of applications whose visualization
     capabilities lie between accessible-but-inflexible (e.g.,
     spreadsheets) and flexible-but-idiosyncratic (e.g., gnuplot).

   * Support both static visualization (e.g., for publication and
     reporting) and interactive visualization (e.g., selection,
     zooming, tooltips) using the same codebase.

   * Deploy easily.

To meet these goals, Rayon has the following features:

   * An API that makes easy things easy and hard things
     comprehensible.

   * Cross-platform support. Rayon has been used in applications that
     run on Linux, Windows and Mac OS X.

   * Multiple rendering backends. Rayon currently supports WxPython
     for interactive applications, and Cairo for non-interactive
     applications.

   * Minimal dependencies. Rayon depends only on Python and the
     rendering libraries of your choice. If you never use WxPython (or
     Cairo), you don't need to install it. Rayon is well-suited for
     any environment in which installing additional dependencies is
     painful. (Which is most of them.)

Requirements
============

Rayon has minimal dependencies. You will need:

   * Python 2.4 or later

   * The third-party renderer of your choice, either WxPython (tested
     on 2.8.9) or pycairo (tested on 1.4.12 and 1.8.2). These
     packages, in turn, depend on the WxWidgets and Cairo sytem
     libraries, respectively.

   * For font switching support, Freetype 2.2 or later and gcc. (Note
     that you can still use and resize text without these packages;
     you just can't change the default font.)

On RHEL5, the relevant packages are:

      * cairo-1.2.4-5.el5

      * cairo-devel-1.2.4-5.el5

      * pycairo-1.2.0-1.1

      * pycairo-devel-1.2.0-1.1

for font switching support, you will additionally need:

      * freetype-2.2.1-21.el5_3

      * freetype-devel-2.2.1-21.el5_3

      * gcc-4.1.2-46.el5_4.1 (to build the font module)


Installation
============

How you install Rayon depends on how you want to use it. If you wish
to embed Rayon in your application, simply copy the rayon python/rayon
directory somewhere convenient and make sure it's in your
PYTHONPATH. Alternately, you can install it like a normal Python
module using distutils.

Documentation
=============

The User's Manual is in the ``doc`` directory. To generate it, type
``python doc.py --html`` in this directory and the HTML documentation
will be created in ``./doc/html``.  The ``doc.py`` script supports
LaTeX output, but this document doesn't; typesetting the manual for
print involves making several decisions about what pictures go where
that haven't been decided and for which LaTeX's defaults are
insufficient.
