LoginSignup
0
0

知られざるJavaScript圧縮program集

Last updated at Posted at 2024-02-03

browser上で動作していたものに限定。知られていないとする根拠はそこら中で引用されまくっていないからですが、私の調査不足という可能性も否定できません。そんな真偽の程はどうでもいいかどうか定かではないかもしれないので、とっとと紹介していきます。

u-lzss

lzss系の圧縮を施します。圧縮後はUTF8文字列となります。
Demo
source

LZ77JSCompressor

名前通りLZ系の圧縮を施します。今はひっそりとお休みになっておられます。
LZ77JSCompressor

JSquash

手始めに不要な空白類を根こそぎ消し去り、次に静的辞書を構築して文字列を圧縮。古典的な文法圧縮に分類されます。出力文字はlatin1(iso-8859-1)となります。
辞書に登録する文字列はうまく厳選されていません。動作する様子が面白いので必見の価値はあるッポイです。
ちなみに本家はとっくの昔に闇の彼方に消えてしまいました。という訳で勝手に改造版とやらをでっち上げておきます。

See the Pen JSquash by xezz (@xezz) on CodePen.

MemTronic CruncherCompressor

最新版が2006年頃という古代兵器。minify機能と可逆圧縮を個別提供しています。前者は高速ですが、後者は極端に超絶低速な圧縮速度を誇ります。伸長は一瞬で終わるので御安心下さい。
圧縮法はJSquashと似ています。ただし辞書の作り方は遥かに優れており、元の半分以下になる事もざらでしょうか?
ではでは例によって、究極召喚

See the Pen HTML/JavaScript Cruncher-Compressor by xezz (@xezz) on CodePen.

JavaScript Utility Version 3

整形、難読化、minify、可逆圧縮と個別に機能を提供。圧縮原理はMemTronic CruncherCompressorとほぼ同じですが、より洗練されているので速度も圧縮率も遥か上(過言)。
圧縮の下ごしらえとしてDean Edwards' PackerのBase62 encodeに似た処理も施している御様子。
Demo

bananascript

MemTronic CruncherCompressorの完全上位互換のprogramと言っても過言ではありません。最新版はClosure Compilerで下ごしらえしてから、静的辞書を用いた文法圧縮の限りを尽くしていたような雰囲気です。MemTronic何とかより遥かに高速です。
一部の人には需要があったようで、かなり使い込まれていたような痕跡がありました。
そんなbananascriptは2020年頃から忽然と姿を消し去り、もう誰も元気だったあの頃を見る事は叶いません…。
ちなみにphpで動作していた空気を醸しているので、その知識がごみの私には蘇らせられませんでした。
残骸置き場

JSCrush

かつてjs1k利用者の間で盛大に大流行。静的辞書による文法圧縮をかましてきます。圧縮速度度外視の超激重設計。2KB以下の文字列を圧縮するならこれを使うと面白い目にあいます。巨大文字列を圧縮しようとすると最悪の場合死に至る訳がありません。
Demo

RegPack

JSCrushを高速化したようなprogram。機能も大幅に強化されています。
Demo

ScriptCompress.com

あまねく圧縮術の数々に目からぼた餅、いや鱗が転げ落ちそうになり損ねて下さい。同pageには他にも大量のlinkがあります。本家は2018年頃に消滅。
Demo(不完全)/作者作品集

roadroller

新進気鋭の高圧縮program。伸長処理の記述量はとても少なく、見事と言う他ありません。
ただ致命的とも言うべき欠点があり、処理には莫大な時間と記憶空間を消費します(設定次第)。
肝心の圧縮原理ですがLogistic context mixingとrANS(高速な算術符号の一種)を組み合わせています。
Demo / github

zpng

htmlにJavaScriptをpng画像として埋め込み実行。圧縮に時間がかかり過ぎる欠点はあるものの、元より大幅に小さくなる可能性があります。しかも高速展開されます。ただし、くせが強く用途は限定される気がします。
Demo/github

ppminy

血迷って公開している自作の高圧縮program。PPMという技法を用いています。速度を気にしない心の広い方々にこよなく愛想をつかされているとかいないとか…。
github/別記事

See the Pen web contents compressor by xezz (@xezz) on CodePen.

他にも…

挙げたらきりがないですね。minify系はもはや定番物の独壇場で紹介するまでもないかな。Vectorにも面白い物が転がっています

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0