Module: Zstd

Includes:
Constants
Defined in:
lib/extzstd.rb,
lib/extzstd/version.rb,
ext/extzstd.c

Overview

This is ruby bindings for zstd <github.com/Cyan4973/zstd> the compression library.

Defined Under Namespace

Modules: Aux, Constants, ContextLess, Dictionary, Exceptions Classes: Decoder, Encoder, Error, Parameters

Constant Summary collapse

StreamEncoder =
Encoder
StreamDecoder =
Decoder
VERSION =
"0.2"
LIBRARY_VERSION =
libver

Constants included from Constants

Constants::BTLAZY2, Constants::BTOPT, Constants::BTULTRA, Constants::CHAINLOG_MAX, Constants::CHAINLOG_MIN, Constants::DFAST, Constants::FAST, Constants::GREEDY, Constants::HASHLOG3_MAX, Constants::HASHLOG_MAX, Constants::HASHLOG_MIN, Constants::LAZY, Constants::LAZY2, Constants::MAX_COMPRESSION_LEVEL, Constants::SEARCHLENGTH_MAX, Constants::SEARCHLENGTH_MIN, Constants::SEARCHLOG_MAX, Constants::SEARCHLOG_MIN, Constants::TARGETLENGTH_MAX, Constants::TARGETLENGTH_MIN, Constants::WINDOWLOG_MAX, Constants::WINDOWLOG_MIN, Constants::ZSTD_BTLAZY2, Constants::ZSTD_BTOPT, Constants::ZSTD_BTULTRA, Constants::ZSTD_CHAINLOG_MAX, Constants::ZSTD_CHAINLOG_MIN, Constants::ZSTD_DFAST, Constants::ZSTD_FAST, Constants::ZSTD_GREEDY, Constants::ZSTD_HASHLOG3_MAX, Constants::ZSTD_HASHLOG_MAX, Constants::ZSTD_HASHLOG_MIN, Constants::ZSTD_LAZY, Constants::ZSTD_LAZY2, Constants::ZSTD_MAX_COMPRESSION_LEVEL, Constants::ZSTD_SEARCHLENGTH_MAX, Constants::ZSTD_SEARCHLENGTH_MIN, Constants::ZSTD_SEARCHLOG_MAX, Constants::ZSTD_SEARCHLOG_MIN, Constants::ZSTD_TARGETLENGTH_MAX, Constants::ZSTD_TARGETLENGTH_MIN, Constants::ZSTD_WINDOWLOG_MAX, Constants::ZSTD_WINDOWLOG_MIN

Class Method Summary collapse

Class Method Details

.decode(src, *args, dict: nil, &block) ⇒ Object

call-seq:

decode(zstd_string, maxsize = nil, dict: nil) -> string
decode(zstd_stream, dict: nil) -> zstd decoder
decode(zstd_stream, dict: nil) { |decoder| ... } -> yield returned value


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/extzstd.rb', line 43

def self.decode(src, *args, dict: nil, &block)
  if src.kind_of?(String)
    case args.size
    when 0
      return ContextLess.decode(src, Aux::EMPTY_BUFFER.dup, nil, dict)
    when 1
      Decoder.open(src, dict) { |d| return d.read(args[0].to_i) }
    else
      raise ArgumentError, "wrong argument number (given #{args.size}, expect 1 or 2)"
    end
  end

  unless args.empty?
    raise ArgumentError, "wrong argument number (given #{args.size}, expect 1)"
  end

  Decoder.open(src, dict, &block)
end

.encode(src, params = nil, dict: nil, &block) ⇒ Object

call-seq:

encode(src_string, level = nil, opts = {}) -> zstd string
encode(src_string, encode_params, opts = {}) -> zstd string
encode(outport, level = nil, opts = {}) -> zstd encoder
encode(outport, level = nil, opts = {}) { |encoder| ... } -> yield returned value
encode(outport, encode_params, opts = {}) -> zstd encoder
encode(outport, encode_params, opts = {}) { |encoder| ... } -> yield returned value
src_string (string)
outport (io liked object)
level = nil (integer or nil)
encode_params (instance of Zstd::Parameters)
opts dict: nil (string or nil)


29
30
31
32
33
34
35
# File 'lib/extzstd.rb', line 29

def self.encode(src, params = nil, dict: nil, &block)
  if src.kind_of?(String)
    return ContextLess.encode(src, Aux::EMPTY_BUFFER.dup, nil, dict, params)
  end

  Encoder.open(src, params, dict, &block)
end