zlib を利用してデータを圧縮 / 展開 *1 するコマンドを作りました。
書くこと
- なにができる?
- 使い方
- インストール
- 動機
- まとめ
なにができる?
- データを zlib で圧縮
- zlib で圧縮 されたデータの展開
これらをしてくれるコマンドです。
使い方
ファイルの圧縮
$ echo -n 'zlib' > decompressed.txt $ zlib --compress < decompressed.txt > compressed.txt
圧縮ファイルの展開
$ zlib --decompress < compressed.txt zlib
展開と BASE64 デコード
$ echo -n 'eJyryslMAgAEZAGy' | base64 --decode | zlib --decompress zlib
ヘルプ
$ zlib --help zlib is row zlib compression commandline program. usage: zlib [options] -c, --compress compresses the input -d, --decompress decompresses the input -h, --help display this help -v, --version display program version
インストール
Homebrew
$ brew tap ebc-2in2crc/zlibcmd $ brew install zlibcmd
手動
https://github.com/ebc-2in2crc/ZlibCmd/releases からダウンロードした zip ファイルを展開した中にあるファイルを、パスの通ったディレクトリに入れる。
動機
zlib はほとんどのプログラミング言語がライブラリーを提供していますが、フロントエンドのツールが見当たらなかったので作りました。 *2
実装言語が Java なのは、書こうとしたときに「Java なら Inflater クラス使えば OK」と教えてもらったからです。書いているときはあとで Go で書き直すつもりでしたが、コンピュータ業界には Goを禁止 *3 している会社も少なからずあることを思い出し、これはこれで残すことにしました。
自分が扱うデータ量が少ないので、実行効率とかはあまり考えていません。
Ruby ならこんなに楽だった
#! /usr/local/bin/ruby require 'zlib' inz = Zlib::Inflate.new STDIN.each { |line| puts inz.inflate(line) }
まとめ
バグとかあると思いますし、「おそいよ!」とか「こーしたら使いやすくなる」とかあったら、イシュー作ったり声かけてもらえると嬉しいです。
ということで zlib コマンド の紹介でした。