Sha256: 77bf21d34d9491a11bc86d651cf9d5f1b2895d9385530b7777a39fa3a12cb4a6

Contents?: true

Size: 881 Bytes

Versions: 18

Compression:

Stored size: 881 Bytes

Contents

# frozen_string_literal: true

require "kafka/snappy_codec"
require "kafka/gzip_codec"
require "kafka/lz4_codec"
require "kafka/zstd_codec"

module Kafka
  module Compression
    CODECS_BY_NAME = {
      :gzip => GzipCodec.new,
      :snappy => SnappyCodec.new,
      :lz4 => LZ4Codec.new,
      :zstd => ZstdCodec.new,
    }.freeze

    CODECS_BY_ID = CODECS_BY_NAME.each_with_object({}) do |(_, codec), hash|
      hash[codec.codec_id] = codec
    end.freeze

    def self.codecs
      CODECS_BY_NAME.keys
    end

    def self.find_codec(name)
      codec = CODECS_BY_NAME.fetch(name) do
        raise "Unknown compression codec #{name}"
      end

      codec.load

      codec
    end

    def self.find_codec_by_id(codec_id)
      codec = CODECS_BY_ID.fetch(codec_id) do
        raise "Unknown codec id #{codec_id}"
      end

      codec.load

      codec
    end
  end
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
ruby-kafka-1.5.0 lib/kafka/compression.rb
ruby-kafka-aws-iam-1.4.5 lib/kafka/compression.rb
ruby-kafka-aws-iam-1.4.4 lib/kafka/compression.rb
ruby-kafka-aws-iam-1.4.3 lib/kafka/compression.rb
ruby-kafka-aws-iam-1.4.2 lib/kafka/compression.rb
ruby-kafka-aws-iam-1.4.1 lib/kafka/compression.rb
ruby-kafka-1.4.0 lib/kafka/compression.rb
ruby-kafka-temp-fork-0.0.2 lib/kafka/compression.rb
ruby-kafka-temp-fork-0.0.1 lib/kafka/compression.rb
ruby-kafka-1.3.0 lib/kafka/compression.rb
ruby-kafka-1.2.0 lib/kafka/compression.rb
ruby-kafka-1.1.0 lib/kafka/compression.rb
ruby-kafka-1.1.0.beta1 lib/kafka/compression.rb
ruby-kafka-1.0.0 lib/kafka/compression.rb
ruby-kafka-0.7.10 lib/kafka/compression.rb
ruby-kafka-0.7.9 lib/kafka/compression.rb
ruby-kafka-0.7.8 lib/kafka/compression.rb
ruby-kafka-0.7.7 lib/kafka/compression.rb