動かざることバグの如し

近づきたいよ 君の理想に

zlibモジュールを使ってNode.jsで圧縮してみる

コード

くっそ簡単なサンプル

var zlib = require('zlib');
zlib.Z_DEFAULT_COMPRESSION = 6;
var rawData = "おはようこんにちはこんばんは";
console.log("圧縮前:" + rawData);

//圧縮
zlib.deflate(rawData, function(err, buffer) {
  if (err) {
    console.log(err);
    return;
  }
  console.log('圧縮後:' + buffer.toString('base64'));

  //伸長
  zlib.unzip(buffer, function(err, buffer) {
    if (err) {
      console.log(err);
      return;
    }
    console.log('解凍後:' + buffer.toString());
  });
});

実行結果

圧縮前:おはようこんにちはこんばんは
圧縮後:eAF73Nj1uHH946aOx41tjxsnP26a/Lhx9ePGhSBBKHcDWHA9AFm8G/0=
解凍後:おはようこんにちはこんばんは

オプションでzlib.Z_DEFAULT_COMPRESSIONがある。 値は1-9で1が速度重視 9が圧縮度重視 0が無圧縮