build_config.rb
に gem mgem: "mruby-zstd"
を追加して下さい。
MRuby::Build.new do |conf|
gem mgem: "mruby-zstd"
end
src = "123456789"
dest = Zstd.encode(src)
圧縮レベルを指定したい場合:
src = "123456789"
complevel = 15 # 1..22 の範囲で与える。既定値は nil で、1 と等価
dest = Zstd.encode(src, level: complevel)
zstdseq = ... # zstd'd string by Zstd.encode
# OR .zst file data by zstd-cli
dest = Zstd.decode(zstdseq)
output = AnyObject.new # An object that has ``.<<'' method (e.g. IO, StringIO, or etc.)
Zstd.encode(output) do |zstd|
zstd << "abcdefg"
zstd << "123456789" * 99
end
input = AnyObject.new # An object that has ``.read'' method (e.g. IO, StringIO, or etc.)
Zstd.decode(input) do |zstd|
zstd.read(20)
buf = ""
zstd.read(5, buf)
zstd.read(10, buf)
zstd.read(nil, buf)
end
build_config.rb
で ZSTD_LEGACY_SUPPORT
を定義することによって、zstd-1.0 以前のデータ形式を伸長できるようになります。
MRuby::Build.new("host") do |conf|
conf.cc.defines << "ZSTD_LEGACY_SUPPORT"
...
end
build_config.rb
で MRUBY_ZSTD_DEFAULT_PARTIAL_SIZE
を定義することによって、段階的なメモリ拡張サイズを指定することが出来ます。
MRuby::Build.new("host") do |conf|
conf.cc.defines << "MRUBY_ZSTD_DEFAULT_PARTIAL_SIZE=65536"
...
end
既定値は、MRB_INT_16 が定義された場合は 4 KiB、それ以外の場合は 1 MiB となっています。
- Product name: mruby-zstd
- Version: 0.2.4
- Product quality: PROTOTYPE
- Author: dearblue
- Report issue to: https://github.com/dearblue/mruby-zstd/issues
- Licensing: 2 clause BSD License
- Dependency external mrbgems: (NONE)
- Bundled C libraries (git-submodule'd):
- zstd version 1.4.8 under 3 clause BSD License by Facebook