=================
Pyfixbuf Overview
=================

Introduction to Pyfixbuf
"""""""""""""""""""""""""

pyfixbuf is a Python API for
`libfixbuf <https://tools.netsa.cert.org/fixbuf/index.html>`_, an
implementation of the `IPFIX` :rfc:`7011` protocol used for building
collecting and exporting processes.  pyfixbuf
can be used to write applications, often called mediators, that collect and
export IPFIX.  Mediators are useful in modifying, filtering, or adding to the
content of the message before forwarding to another IPFIX collection point, or
in converting IPFIX to another format (text, database, JSON, etc.).

libfixbuf is a compliant implementation of the IPFIX Protocol, as defined in
the `Specification of the IPFIX Protocol for Export of IP Flow Information`
:rfc:`7011`.  It supports the Information Model defined in `Information Model
for IP Flow Information Export` :rfc:`7012` extended as proposed by
`Bidirectional Flow Export using IPFIX` :rfc:`5103` to support information
elements for representing biflows.  It also supports `Exporting Type
Information for IPFIX Information Elements` :rfc:`5610` and structured data
elements as described in `Export of Structured Data in IPFIX` :rfc:`6313`.

libfixbuf, as well as pyfixbuf, supports UDP and TCP as transport protocols.
It also supports operation as an IPFIX File Writer or IPFIX File
Reader.



Installation
"""""""""""""""

pyfixbuf is compatible with Python versions 2.6, 2.7, and 3.3 or later.

pyfixbuf requires the
`ipaddress <https://docs.python.org/3/library/ipaddress.html>`_ library, which
is standard in Python 3 since v3.3.  Users of Python 2.6 or 2.7 should install
it through pypi or from `<https://github.com/phihag/ipaddress>`_.

pyfixbuf requires `libfixbuf`_
version 2.2 or later.  libfixbuf should be built and installed before building
and installing pyfixbuf.  It may be necessary to set the PKG_CONFIG_PATH
environment variable to the location of the ``libfixbuf.pc`` file before
building pyfixbuf.  Typically this file is located at /usr/local/lib/pkgconfig
when libfixbuf is installed in the default location.

Building and installing pyfixbuf is done using the standard setup.py
mechanism.  The following commands should suffice in most cases:

.. sourcecode:: python

    python setup.py build

    python setup.py install             #as root

You may need to use the -E option to ``sudo`` to preserve the PKG_CONFIG_PATH
environment variable when installing.



API Documentation
""""""""""""""""""

.. toctree::
   :maxdepth: 1

   pyfixbuf.rst
   pyfixbufcert.rst
   pyfixbufyaf.rst
   intro.rst

..
  Local Variables
  fill-column:78
  End:
