Kafka package version 0.12
==========================

The Kafka package is a set of Perl modules which provides a
simple and consistent application programming interface (API) to the
Apache Kafka 0.7, 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
without Apache ZooKeeper service.

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 better. 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:

   Params::Util
   String::CRC32

The Kafka package has the following optional dependencies:

   Test::Deep
   Test::Exception

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 variables change the way Kafka Benchmark test behave
("t/99_usage/03_kafka_bench.t"):

   # the IO timeout in secs
   KAFKA_BENCHMARK_TIMEOUT = 0.5

   # minimum length of test messages
   KAFKA_BENCHMARK_LEN_MIN = 200

   # maximum length of the test messages
   KAFKA_BENCHMARK_LEN_MAX = 200

   # number of messages for batch testing
   KAFKA_BENCHMARK_PACKAGE = 5000

   # number of messages for a single test
   KAFKA_BENCHMARK_SINGLE = 5

SIMPLE BENCHMARK

Use tools/benchmark_consumer.pl and tools/benchmark_producer.pl to run a simple
benchmark.
Run one or more consumer instances using tools/benchmark_consumer.pl .
and one or more producer instances using 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 modules
   Kafka::IO         - object interface to socket communications
                       with the Apache Kafka server
   Kafka::Protocol   - functions to process messages
                       in the Apache Kafka's Wire Format
   Kafka::Message    - object interface to the Kafka message properties
   Kafka::Int64      - functions to work with 64 bit elements
                       of the protocol on 32 bit systems
   Kafka::Mock       - object interface to the TCP mock server for testing
   Kafka::Producer   - object interface to the producer client
   Kafka::Consumer   - object interface to the consumer client

COPYRIGHT AND LICENCE

Copyright (C) 2012-2013 by TrackingSoft LLC.
All rights reserved.

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.
