I updated the PHP client library to fully work with the kafka code in trunk, with the following improvements:
- added support for GZIP compression (both in the producer and the consumer);
- implemented stream-based iteration of messages (rather than loading the entire response in memory);
- added base Kafka_Exception class (extending RuntimeException) and some child classes to catch specific errors;
- added validation and error checking in several parts of the code (like CRC validation of messages, stream connection/EOF checks, response code verification);
- added example producer for compressed messages.
The code is fully tested (vast improvements to the existing test suite are provided with the patch), and already incorporates a proper fix for
KAFKA-319 (which can be rejected).
The API hasn't changed and is 100% backwards compatible.