JavaScript で文字列を圧縮できるらしいよ
JavaScript で文字列を圧縮するライブラリというのがあるのを知った。
- JavaScriptで文字列を圧縮する - setchi's blog
- 前世紀の圧縮ライブラリに畏怖した話 - Qiita
- 雑記 : JavaScriptだけで動作する短縮URLサービスを作ろうとしてみた。(その1) - ゲレの工房
RFC 1951 の Deflate という可逆データ圧縮アルゴリズムを JS で実装したモノらしい。Zip の圧縮方法がコレらしい。
その JS ライブラリを配布していた大元のサイトは消えているのだが、GitHub に Fork されたモノがあったのでそれを見てみた。
オリジナルは1999年に作られたモノとのこと。自分が「ホームページ」作りを始めた前後の時代だ…。
このライブラリを利用して動くデモを作ってみた。上半分のテキストエリアに入力された文字列が、下半分に圧縮されて出力される。逆に、圧縮後の文字列を下のテキストエリアに貼れば、上のテキストエリアに解凍された文字列が表示される。ちゃんと可逆圧縮できている。
ソースコードは以下。rawdeflate.js
と rawinflate.js
は一切手を加えていない。圧縮と解凍の際に、encodeURIComponent
/ decodeURIComponent
および btoa
/ atob
を噛ませつつ、ライブラリを利用している。
…すごくね?1999年に発表された JS のコードがそのまんま今も動いてるって凄くね?ちょっと感動した。作りが確かなら、どんな言語でも長く使えるプログラムって書けるんだなと思った。