diff options
Diffstat (limited to 'kafka/codec.py')
-rw-r--r-- | kafka/codec.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kafka/codec.py b/kafka/codec.py index 47ab074..83f3c0b 100644 --- a/kafka/codec.py +++ b/kafka/codec.py @@ -4,6 +4,13 @@ import logging log = logging.getLogger("kafka.codec") +try: + import snappy + hasSnappy=True +except ImportError: + log.warn("Snappy codec not available") + hasSnappy=False + def gzip_encode(payload): buf = StringIO() f = gzip.GzipFile(fileobj=buf, mode='w', compresslevel=6) @@ -21,3 +28,13 @@ def gzip_decode(payload): f.close() buf.close() return out + +def snappy_encode(payload): + if not hasSnappy: + raise NotImplementedError("Snappy codec not available") + return snappy.compress(payload) + +def snappy_decode(payload): + if not hasSnappy: + raise NotImplementedError("Snappy codec not available") + return snappy.decompress(payload) |