lib/kafka/compression.rb
# frozen_string_literal: true require "kafka/snappy_codec" require "kafka/gzip_codec" require "kafka/lz4_codec" module Kafka module Compression CODEC_NAMES = { 1 => :gzip, 2 => :snappy, 3 => :lz4, }.freeze CODECS = { :gzip => GzipCodec.new, :snappy => SnappyCodec.new, :lz4 => LZ4Codec.new, }.freeze def self.codecs CODECS.keys end def self.find_codec(name) codec = CODECS.fetch(name) do raise "Unknown compression codec #{name}" end codec.load codec end def self.find_codec_by_id(codec_id) codec_name = CODEC_NAMES.fetch(codec_id) do raise "Unknown codec id #{codec_id}" end find_codec(codec_name) end end end