summaryrefslogtreecommitdiff
path: root/kafka/codec.py
diff options
context:
space:
mode:
Diffstat (limited to 'kafka/codec.py')
-rw-r--r--kafka/codec.py17
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)