Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

extbzip3

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

extbzip3

  • 0.0.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

extbzip3 - bzip3 for Ruby

This document is written in Japanese.

bzip3 の非公式 Ruby バインディングです。

できること

  • require "extbzip3"
    • Bzip3 module

      methodannotation
      Bzip3.decode(str, ...)see Bzip3::Decoder.decode
      Bzip3.encode(str, ...)see Bzip3::Encoder.encode
      Bzip3.decode(obj, ...)see Bzip3::Decoder.open
      Bzip3.encode(obj, ...)see Bzip3::Encoder.open
    • Bzip3::Decoder class

      methodannotation
      Bzip3::Decoder.decode(str, maxdest = nil, dest = "", *opts)returns dest with bzip3 decoded
      Bzip3::Decoder.decode(str, dest, *opts)returns dest with bzip3 decoded
      Bzip3::Decoder.open(obj, *opts)returns bzip3 decoder
      Bzip3::Decoder.open(obj, *opts) { |decoder| ... }returns object from yield returned
      Bzip3::Decoder#read(size = nil, dest = "")returns dest with bzip3 decoded
      Bzip3::Decoder#close
      Bzip3::Decoder#eof?
    • Bzip3::Encoder class

      methodannotation
      Bzip3::Encoder.encode(str, maxdest = nil, dest = "", *opts)returns dest with bzip3'ed sequence
      Bzip3::Encoder.encode(str, dest, *opts)returns dest with bzip3'ed sequence
      Bzip3::Encoder.open(obj, *opts)returns bzip3 encoder
      Bzip3::Encoder.open(obj, *opts) { |encoder| ... }returns object from yield returned
      Bzip3::Encoder#write(src)returns receiver
      Bzip3::Encoder#flushreturns receiver
      Bzip3::Encoder#close
      Bzip3::Encoder#eof?
    • Bzip3::BlockProcessor class

      methodannotation
      Bzip3::BlockProcessor.new(blocksize)
      Bzip3::BlockProcessor#decode(src, dest, original_size)returns dest string as original data
      Bzip3::BlockProcessor#encode(src, dest)returns dest string as bzip3'ed data
      Bzip3::BlockProcessor#blocksizereturns blocksize integer with when new
    • using Bzip3 (refinements)

      methodannotation
      String#to_bzip3(...)see Bzip3::Encoder.encode
      String#bunzip3(...)see Bzip3::Decoder.decode
      Object#to_bzip3(...)see Bzip3::Encoder.open
      Object#bunzip3(...)see Bzip3::Decoder.open

データ形式について

  • extbzip3 は 「bzip3 ファイル形式」 を標準で扱います。 利用者は特別な操作や指定を行う必要がありません。
  • extbzip3 は 「bzip3 ブロック形式」 を扱うことも出来ます。 Bzip3::BlockProcessor クラスを使ってください。
  • extbzip3 は 「bzip3 フレーム形式」 を扱うことも出来ます。 文字列を圧縮・伸長する特異メソッド Bzip3::Encoder.encode または Bzip3::Decoder.decode にキーワード引数として format: Bzip3::V1_FRAME_FORMAT を与えてください。 ストリーム指向 API を「bzip3 フレーム形式」に対応させる予定はありません。

つかいかた

導入

事前にシステム上へ bzip3 をインストールしてください。

% sudo gem install extbzip3

単発圧縮・伸長

require "extbzip3"

src = "123456789"
bin = Bzip3.encode(src)
# => "BZ3v1\x00\x00\x10\x00\x11\x00\x00\x00\t\x00\x00\x00'F\xE3\xEB\xFF\xFF\xFF\xFF123456789"
src1 = Bzip3.decode(bin)
# => "123456789"

ストリーミング圧縮と伸長

require "extbzip3"

# 圧縮処理してファイルとして出力
File.open("/boot/kernel/kernel", "rb") do |src|
  File.open("kernel.bz3", "wb") do |dest|
    Bzip3.encode(dest) do |bz3|
      buf = ""
      bz3.write buf while src.read(123456, buf)
    end
  end
end

# 伸張処理してファイルとして出力
File.open("kernel.bz3", "rb") do |src|
  File.open("kernel.1", "wb") do |dest|
    Bzip3.decode(src) do |bz3|
      buf = ""
      dest.write buf while bz3.read(123456, buf)
    end
  end
end

# ファイルの比較
system "md5 /boot/kernel/kernel kernel.1"
# => MD5 (/boot/kernel/kernel) = 71b8f6c6a29f4d647f45d9501d549cf3
# => MD5 (kernel.1) = 71b8f6c6a29f4d647f45d9501d549cf3

bzip3 フレーム形式による単発圧縮・伸長

require "extbzip3"

src = "123456789"
bin = Bzip3.encode(src, format: Bzip3::V1_FRAME_FORMAT)
# => "BZ3v1\x00\x00\x10\x00\x01\x00\x00\x00\x11\x00\x00\x00\t\x00\x00\x00'F\xE3\xEB\xFF\xFF\xFF\xFF123456789"
src1 = Bzip3.decode(bin, format: Bzip3::V1_FRAME_FORMAT)
# => "123456789"

しょげん

FAQs

Package last updated on 19 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc