Choose a version:
25% The original file has 558927 bytes (545.8k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 138891 bytes (135.6k, 25%).

After GZIP compression these minified files vary in size:
Boot
  55414 bytes (54.1k)
CDN
Baidu
  48225 bytes (47.1k)
CDN
cdnjs
  48218 bytes (47.1k)
CDN
gzip -6 (default)
  48041 bytes (46.9k)
local copy
gzip -9
  48015 bytes (46.9k)
local copy
Yandex
  48009 bytes (46.9k)
CDN
7zip -mx=9 -tgzip
  45811 bytes (44.7k)
local copy
libdeflate -12
  45775 bytes (44.7k)
local copy
kzip -s0 -rn -b1
  45734 bytes (44.7k)
local copy
pigz -11 -n
  45722 bytes (44.7k)
local copy
zultra
  45722 bytes (44.7k)
local copy
Zopfli
  45631 bytes (44.6k)
local copy

perma-link to the smallest file on my server:
http://minime.stephan-brumme.com/files/dojo/dojo-1.7.3.min.js (or via HTTPS)

You will automatically get the smallest Dojo 1.7.3 file, ETag caching is available and
if your browser doesn't support GZIP decompression then the uncompressed version will be sent.

Currently best Zopfli settings

Save 2378 bytes by using my Dojo 1.7.3 Zopfli version instead of the best available CDN (5.21% smaller than Yandex, 45631 vs. 48009 bytes):
You can use my super-compressed files for whatever purpose you like as long as you respect the library's original license agreement.
There are no restrictions from my side - but please avoid hot-linking if you run a high-traffic website.

These command-line settings yielded the best compression ratio so far (Linux version of zopfli-krzymod):
zopfli --i1000000 --mb8 --mls64 --bsr23 --lazy --ohh

(found February 26, 2020)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 64  --mls64
block splitting recursion 23  --bsr23
lazy matching in LZ77 yes  --lazy
optimized Huffman headers yes  --ohh
initial random W for iterations 1  --rw1
initial random Z for iterations 2  --rz2

Verify file integrity

After decompression, my uncompressed files are identical to the original ones:

MD5:
curl --silent --compressed https://download.dojotoolkit.org/release-1.7.3/dojo.js --location | md5sum
8014a9281787e04f096b4906570c245f  -
curl --silent --compressed https://minime.stephan-brumme.com/files/dojo/dojo-1.7.3.min.zopfli.js.gz | md5sum
8014a9281787e04f096b4906570c245f  -

SHA1:
curl --silent --compressed https://download.dojotoolkit.org/release-1.7.3/dojo.js --location | sha1sum
87e4a915e1bfda27d9ec18236ddd9dc422060e51  -
curl --silent --compressed https://minime.stephan-brumme.com/files/dojo/dojo-1.7.3.min.zopfli.js.gz | sha1sum
87e4a915e1bfda27d9ec18236ddd9dc422060e51  -

These CDNs send you the original file:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 55414 bytes 8014a9281787e04f096b4906570c245f March 19, 2015 @ 15:34
cdnjs 48218 bytes 8014a9281787e04f096b4906570c245f February 8, 2015 @ 14:45

And some CDNs send you a different file:
CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Baidu 48225 bytes 970107b8a810d04345e13bbc7c0df483 only whitespaces differ January 7, 2015 @ 10:16
Yandex 48009 bytes bae3cb7cc0f4ab02d7051b9a4d04d639 < (function(_1,_2){var _3=function(){},_4=function(it){for(v [...]
> (function(_1,_2){var _3=function(){},_4=function(it){for(v [...]
June 20, 2013 @ 11:59

Note: only the MD5 hashes are shown to keep things simple.

Other Versions

Available Dojo versions at minime.stephan-brumme.com:

1.17.3, 1.17.2, 1.17.1, 1.17.0,
1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16.0,
1.15.6, 1.15.5, 1.15.4, 1.15.3, 1.15.2, 1.15.1, 1.15.0,
1.14.9, 1.14.8, 1.14.7, 1.14.6, 1.14.5, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14.0,
1.13.10, 1.13.9, 1.13.8, 1.13.7, 1.13.6, 1.13.5, 1.13.4, 1.13.3, 1.13.2, 1.13.1, 1.13.0,
1.12.11, 1.12.10, 1.12.9, 1.12.8, 1.12.7, 1.12.6, 1.12.5, 1.12.4, 1.12.3, 1.12.2, 1.12.1,
1.11.13, 1.11.12, 1.11.11, 1.11.10, 1.11.9, 1.11.8, 1.11.7, 1.11.6, 1.11.5, 1.11.4, 1.11.3, 1.11.2, 1.11.1, 1.11.0,
1.10.10, 1.10.9, 1.10.8, 1.10.7, 1.10.6, 1.10.5, 1.10.4, 1.10.3, 1.10.2, 1.10.1, 1.10.0,
1.9.11, 1.9.10, 1.9.9, 1.9.8, 1.9.7, 1.9.6, 1.9.5, 1.9.4, 1.9.3, 1.9.2, 1.9.1, 1.9.0,
1.8.14, 1.8.13, 1.8.12, 1.8.11, 1.8.10, 1.8.9, 1.8.8, 1.8.7, 1.8.6, 1.8.5, 1.8.4, 1.8.3, 1.8.2, 1.8.1, 1.8.0,
1.7.12, 1.7.11, 1.7.10, 1.7.9, 1.7.8, 1.7.7, 1.7.6, 1.7.5, 1.7.4, 1.7.3, 1.7.2, 1.7.1, 1.7.0,
1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0,
1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0,
1.4.8, 1.4.7, 1.4.6, 1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0,
1.3.3, 1.3.2, 1.3.1, 1.3.0,
1.2.3, 1.2.2

The project site contains an overview how well these versions were compressed.
Other interesting projects are AngularJS, BackboneJS, Bootstrap, D3, Ember, jQuery, Knockout, lodash, React, Socket.IO, ThreeJS, UnderscoreJS and Vue.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
45631 bytes -1 byte zopfli --i1000000 --mls64 --bsr23 --lazy --ohh February 26, 2020 @ 18:50
45632 bytes -3 bytes zopfli --i100000 --mls64 --bsr23 --lazy --ohh November 22, 2015 @ 23:18
45635 bytes -4 bytes zopfli --i10000 --mls16384 --bsr9 --lazy --ohh November 22, 2015 @ 22:43
45639 bytes -1 byte zopfli --i10000 --mls64 --bsr8 --lazy --ohh October 14, 2015 @ 02:01
45640 bytes -1 byte zopfli --i1000 --mls64 --bsr8 --lazy --ohh September 14, 2015 @ 14:06
45641 bytes -1 byte zopfli --i1000 --mls64 --bsr12 --lazy --ohh September 14, 2015 @ 14:00
45642 bytes -1 byte zopfli --i1000 --mls64 --bsr16 --lazy --ohh September 14, 2015 @ 13:56
45643 bytes zopfli --i100 --mls16384 --bsr9 --lazy --ohh September 11, 2015 @ 15:04

If there are multiple parameter sets yielding the same compressed size, only the first one found is shown.

Most recent activity on March 16, 2022 @ 12:38.

Heatmaps

This Zopfli heatmap visualizes how compression changes when modifying the --bsr and --mls parameter.
Cell's contents is the best filesize achieved (in bytes, hover with mouse over cells to see number of iterations).

Good parameters are green, bad are red. The best and worst are bold as well.
The brightness of the blue background color indicates how many iterations were processed:
10,000, 100,000 or 1,000,000.
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
45651 45653 45656 45651 45652 45648 45648 45648 45644 45646 45640 45642 45672 45681 45664
45646 45644 45647 45634 45639 45646 45643 45639 45647 45657 45647 45667 45674 45641 45666
45649 45653 45646 45640 45646 45645 45645 45645 45646 45657 45656 45653 45671 45655 45645
45646 45647 45636 45638 45639 45647 45646 45643 45639 45659 45647 45653 45675 45647 45660
45643 45639 45641 45642 45640 45639 45652 45639 45638 45654 45655 45671 45676 45640 45666
45642 45646 45642 45646 45641 45644 45654 45640 45639 45661 45656 45665 45661 45631 45651
45644 45639 45643 45637 45640 45645 45652 45639 45645 45664 45648 45654 45671 45641 45647
45640 45640 45643 45647 45641 45641 45660 45639 45639 45657 45656 45665 45678 45673 45657
45639 45640 45641 45642 45636 45634 45643 45643 45640 45652 45646 45663 45662 45643 45648
45646 45645 45641 45645 45641 45646 45652 45642 45642 45650 45664 45659 45673 45655 45645
45643 45638 45642 45639 45645 45641 45660 45643 45654 45657 45649 45655 45672 45639 45645
45649 45638 45642 45640 45639 45645 45657 45643 45639 45659 45656 45649 45675 45650 45659
45643 45638 45641 45640 45642 45641 45664 45646 45658 45658 45656 45653 45669 45646 45657
45643 45649 45643 45645 45639 45642 45654 45639 45644 45651 45656 45654 45674 45638 45664
45639 45646 45641 45642 45642 45643 45652 45638 45639 45653 45656 45648 45660 45639 45660
45641 45641 45645 45647 45648 45640 45652 45639 45644 45658 45657 45649 45677 45645 45658
45640 45646 45643 45647 45642 45646 45654 45639 45644 45657 45658 45654 45673 45649 45676
45641 45644 45643 45644 45645 45645 45655 45637 45641 45657 45656 45652 45672 45644 45647
45643 45641 45643 45639 45650 45652 45656 45645 45655 45659 45657 45659 45673 45650 45645
45642 45645 45642 45644 45640 45631 45654 45639 45639 45665 45646 45651 45674 45650 45658
45640 45642 45643 45643 45645 45640 45653 45646 45644 45665 45655 45662 45677 45650 45648
45645 45639 45639 45647 45638 45639 45652 45643 45642 45659 45657 45654 45673 45638 45658
45646 45639 45649 45639 45639 45640 45654 45640 45639 45653 45656 45649 45657 45644 45641

Due to the Monte Carlo design of my search algorithm, not all parameters have reached the same number of iterations yet:
Iterations Min. Bytes Reduction Coverage
100 45643 bytes 100%
1,000 45640 bytes -3 bytes 100%
10,000 45635 bytes -5 bytes 100%
100,000 45632 bytes -3 bytes 1.16%
1,000,000 45631 bytes -1 byte 0.58%
10,000,000

KZIP has far less options available for tuning/optimization. I only played around with the number of blocks (parameter -n):
Blocks Min. Bytes Compared To Best Zopfli Compared To Best KZIP
45759 bytes +128 bytes (+0.28%) +25 bytes
45734 bytes +103 bytes (+0.23%)
45757 bytes +126 bytes (+0.28%) +23 bytes
45769 bytes +138 bytes (+0.30%) +35 bytes
45810 bytes +179 bytes (+0.39%) +76 bytes
45797 bytes +166 bytes (+0.36%) +63 bytes
45818 bytes +187 bytes (+0.41%) +84 bytes
45871 bytes +240 bytes (+0.53%) +137 bytes
45906 bytes +275 bytes (+0.60%) +172 bytes

Non-DEFLATE Algorithms

Archivers based on completely different compression algorithms often produce superior results.
Unfortunately, browsers only support gzip compression at the moment.
However, support for Brotli is constantly growing - but your browser doesn't support it.
Algorithm Program Parameters Size Compared To Best Zopfli
ZPAQ (Wikipedia) zpaq zpaq -method 69 34117 bytes -11514 bytes (-25.23%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 40007 bytes -5624 bytes (-12.32%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 40723 bytes -4908 bytes (-10.76%)
Brotli (Wikipedia) brotli brotli -q 11 41948 bytes -3683 bytes (-8.07%)
LZMA2 (Wikipedia) xz xz -9 42996 bytes -2635 bytes (-5.77%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 44287 bytes -1344 bytes (-2.95%)
Zstandard (Wikipedia) zstd zstd -19 44307 bytes -1324 bytes (-2.90%)

Detailled Analysis

I wrote a DEFLATE decoder in Javascript. Click the button below to start a client-side analysis of the smallest gzipped files (may take a second):


Notes: pigz is a fast open source multi-threaded implementation of gzip written by one of the original authors of gzip.
However, when using compression level 11, pigz actually switches to the slower Zopfli algorithm and isn't multi-threaded anymore.
KrzyMOD's extensions to Zopfli offer the highest level of configuration and is therefore used for my brute-force search.
Ken Silverman wrote the closed-source KZIP compression program and Jonathon Fowler ported it to Linux.
Defluff was created by Joachim Henke; DeflOpt is a tool by Ben Jos Walbeehm.

website made by Stephan Brumme in 2015 and still improving in 2024.
all timestamps are displayed in central european time. see my changelog.
no flash, not even images or external css files - and everything squeezed into a single html file.
which was handsomely compressed before releasing it into the wild internet - obviously.

please visit my homepage and my blog, too.
email: minime (at) stephan-brumme.com

All trademarks are property of their respective owners. You know, the boring legal stuff.