Kafka package version 0.8010
============================

The Kafka package is a set of Perl modules which provides a
simple and consistent application programming interface (API) to the
Apache Kafka 0.8, a high-throughput distributed messaging system.
The main focus of the package is to provide classes
and functions that allow you to write Apache Kafka clients.


The Kafka package was written, tested, and found working on
recent Linux distributions.

INSTALLATION

To install this package type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

In order to install and use this package you will need Perl version
5.010 or higher. Some modules within this package depend on other
packages that are distributed separately from Perl. We recommend that
you have the following packages installed before you install
Kafka:

   Carp
   Compress::Snappy
   Const::Fast
   Data::Compare
   Data::HexDump::Range
   Exception::Class
   Exporter
   IO::Compress::Gzip
   IO::Uncompress::Gunzip
   List::MoreUtils
   List::Util
   Params::Util
   Scalar::Util
   Scalar::Util::Numeric
   Socket
   String::CRC32
   Sys::SigAction
   Time::HiRes
   Try::Tiny

The Kafka package has the following optional dependencies:

   Capture::Tiny
   Carp
   Clone
   Config::IniFiles
   Const::Fast
   Cwd
   Data::Dumper
   Exporter
   File::HomeDir
   File::Path
   File::Spec
   File::Spec::Functions
   IO::File
   IO::Socket::INET
   List::Util
   Net::EmptyPort
   Params::Util
   Proc::Daemon
   Scalar::Util
   Scalar::Util::Numeric
   Socket
   Sub::Install
   Sys::SigAction
   Test::Deep
   Test::Exception
   Test::Fixme
   Test::More
   Test::NoWarnings
   Test::TCP
   Time::HiRes
   Try::Tiny

If the optional modules are missing, some "prereq" tests are skipped.

The installation of the missing dependencies can either be accomplished
through your OS package manager or through CPAN (or downloading the source
for all dependencies and compiling them manually).

TESTING

The following environment variable changes the way Kafka Benchmark test behave:

   # The root directory of the installation Kafka 0.8
   KAFKA_BASE_DIR

SIMPLE BENCHMARK

Use tools/benchmark_consumer.pl and tools/benchmark_producer.pl to run a simple
benchmark.
Run one or more consumer or producer instances using tools/benchmark_consumer.pl or
tools/benchmark_producer.pl .

DOCUMENTATION

Every Kafka package module has a man page. A simple description of each module is
included below in the SEE ALSO section.

SEE ALSO

The basic operation of the Kafka package modules:

   Kafka             - constants and messages used by the Kafka package.
   Kafka::Connection - API to connect to a kafka cluster.
   Kafka::Producer   - interface to the 'producer' client.
   Kafka::Consumer   - interface to the 'consumer' client.
   Kafka::Message    - interface to the Kafka message properties.
   Kafka::Int64      - functions to work with 64 bit elements of the
                       protocol on 32 bit systems.
   Kafka::Protocol   - functions to process messages in the
                       Apache Kafka's Protocol.
   Kafka::IO         - low-level communications with the Apache Kafka server.
   Kafka::Exceptions - module designated to handle Kafka exceptions.
   Kafka::Internals  - Internal constants and functions used
                       by several packaged modules.

COPYRIGHT AND LICENCE

Copyright (C) 2012-2013 by TrackingSoft LLC.

This package is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. See perlartistic at
http://dev.perl.org/licenses/artistic.html .

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
