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

You can install Faust either via the Python Package Index (PyPI)
or from source.

To install using `pip`:

.. sourcecode:: console

    $ pip install -U faust

.. _bundles:

Bundles
-------

Faust also defines a group of :pypi:`setuptools` extensions that can be used
to install Faust and the dependencies for a given feature.

You can specify these in your requirements or on the :command:`pip`
command-line by using brackets. Separate multiple bundles using the comma:

.. sourcecode:: console

    $ pip install "faust[rocksdb]"

    $ pip install "faust[rocksdb,uvloop,fast,redis]"

The following bundles are available:

Stores
~~~~~~

:``faust[rocksdb]``:
    for using `RocksDB`_ for storing Faust table state.

    **Recommended in production.**


.. _`RocksDB`: http://rocksdb.org

Caching
~~~~~~~

:``faust[redis]``:
    for using `Redis_` as a simple caching backend (Memcached-style).

Codecs
~~~~~~

:``faust[yaml]``:
    for using YAML and the :pypi:`PyYAML` library in streams.

Optimization
~~~~~~~~~~~~

:``faust[fast]``:
    for installing all the available C speedup extensions to Faust core.

Sensors
~~~~~~~

:``faust[datadog]``:
    for using the Datadog Faust monitor.

:``faust[statsd]``:
    for using the Statsd Faust monitor.

Event Loops
~~~~~~~~~~~

:``faust[uvloop]``:
    for using Faust with :pypi:`uvloop`.

:``faust[eventlet]``:
    for using Faust with :pypi:`eventlet`

Debugging
~~~~~~~~~

:``faust[debug]``:
    for using :pypi:`aiomonitor` to connect and debug a running Faust worker.

:``faust[setproctitle]``:
    when the :pypi:`setproctitle` module is installed the Faust worker will
    use it to set a nicer process name in :program:`ps`/:program:`top` listings.
    Also installed with the ``fast`` and ``debug`` bundles.

Downloading and installing from source
--------------------------------------

Download the latest version of Faust from
http://pypi.org/project/faust

You can install it by doing:

.. sourcecode:: console

    $ tar xvfz faust-0.0.0.tar.gz
    $ cd faust-0.0.0
    $ python setup.py build
    # python setup.py install

The last command must be executed as a privileged user if
you are not currently using a virtualenv.

Using the development version
-----------------------------

With pip
~~~~~~~~

You can install the latest snapshot of Faust using the following
:program:`pip` command:

.. sourcecode:: console

    $ pip install https://github.com/robinhood/faust/zipball/master#egg=faust
