JavaScript で文字列を圧縮できるらしいよ

JavaScript で文字列を圧縮するライブラリというのがあるのを知った。

RFC 1951 の Deflate という可逆データ圧縮アルゴリズムを JS で実装したモノらしい。Zip の圧縮方法がコレらしい。

その JS ライブラリを配布していた大元のサイトは消えているのだが、GitHub に Fork されたモノがあったのでそれを見てみた。

オリジナルは1999年に作られたモノとのこと。自分が「ホームページ」作りを始めた前後の時代だ…。

このライブラリを利用して動くデモを作ってみた。上半分のテキストエリアに入力された文字列が、下半分に圧縮されて出力される。逆に、圧縮後の文字列を下のテキストエリアに貼れば、上のテキストエリアに解凍された文字列が表示される。ちゃんと可逆圧縮できている。

ソースコードは以下。rawdeflate.jsrawinflate.js は一切手を加えていない。圧縮と解凍の際に、encodeURIComponent / decodeURIComponent および btoa / atob を噛ませつつ、ライブラリを利用している。

…すごくね?1999年に発表された JS のコードがそのまんま今も動いてるって凄くね?ちょっと感動した。作りが確かなら、どんな言語でも長く使えるプログラムって書けるんだなと思った。