Choose a version:
24% The original file has 380183 bytes (371.3k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 91801 bytes (89.6k, 24%).

After GZIP compression these minified files vary in size:
Boot
  36000 bytes (35.2k)
CDN
Baidu
  31478 bytes (30.7k)
CDN
cdnjs
  31470 bytes (30.7k)
CDN
gzip -6 (default)
  31377 bytes (30.6k)
local copy
gzip -9
  31338 bytes (30.6k)
local copy
Yandex
  31323 bytes (30.6k)
CDN
7zip -mx=9 -tgzip
  29924 bytes (29.2k)
local copy
libdeflate -12
  29906 bytes (29.2k)
local copy
kzip -s0 -rn -b3
  29898 bytes (29.2k)
local copy
zultra
  29885 bytes (29.2k)
local copy
pigz -11 -n
  29857 bytes (29.2k)
local copy
Zopfli
  29791 bytes (29.1k)
local copy
Zopfli (defluff)
  29790 bytes (29.1k)
local copy

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

You will automatically get the smallest Dojo 1.6.1 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 1532 bytes by using my Dojo 1.6.1 Zopfli version instead of the best available CDN (5.14% smaller than Yandex, 29791 vs. 31323 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 --mls8 --bsr30 --lazy --ohh

(found February 27, 2020)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 8  --mls8
block splitting recursion 30  --bsr30
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

Even Smaller Files Thanks To Defluff

Zopfli's output can be further optimized by the defluff tool.
In this particular case, defluff saves 1 more byte (29790 bytes).

Verify file integrity

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

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

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

These CDNs send you the original file:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 36000 bytes 04279dcba13331b5c49a1cc1445e714f March 19, 2015 @ 15:32
cdnjs 31470 bytes 04279dcba13331b5c49a1cc1445e714f February 8, 2015 @ 14:45
Yandex 31323 bytes 04279dcba13331b5c49a1cc1445e714f June 20, 2013 @ 11:59

And some CDNs send you a different file:
CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Baidu 31478 bytes ab38681f1e5da0c4b4efa8a53b5e163f only whitespaces differ January 7, 2015 @ 10:16

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
29791 bytes -1 byte zopfli --i1000000 --mls8 --bsr30 --lazy --ohh February 27, 2020 @ 18:14
29792 bytes -3 bytes zopfli --i100000 --mls8 --bsr30 --lazy --ohh September 25, 2015 @ 23:45
29795 bytes -2 bytes zopfli --i10000 --mls8 --bsr30 --lazy --ohh September 25, 2015 @ 09:39
29797 bytes -3 bytes zopfli --i1000 --mls8 --bsr30 --lazy --ohh September 24, 2015 @ 21:06
29800 bytes -1 byte zopfli --i1000 --mls8 --bsr14 --lazy --ohh September 20, 2015 @ 05:38
29801 bytes -3 bytes zopfli --i1000 --mls8 --bsr16 --lazy --ohh September 20, 2015 @ 05:29
29804 bytes zopfli --i100 --mls8 --bsr14 --lazy --ohh September 18, 2015 @ 16:04

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

Most recent activity on July 20, 2020 @ 12:53.

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
29832 29851 29842 29849 29845 29841 29864 29862 29865 29859 29859 29862 29872 29867 29858
29835 29836 29831 29836 29840 29844 29850 29854 29849 29854 29846 29852 29855 29862 29853
29853 29828 29854 29854 29847 29856 29821 29852 29850 29851 29849 29850 29861 29859 29859
29838 29815 29831 29833 29828 29842 29856 29846 29819 29855 29809 29867 29865 29863 29858
29819 29831 29808 29832 29839 29835 29827 29827 29834 29855 29852 29859 29867 29859 29859
29824 29833 29802 29830 29830 29837 29856 29849 29844 29850 29848 29852 29809 29859 29861
29817 29817 29806 29830 29833 29829 29856 29846 29809 29853 29855 29847 29854 29850 29848
29824 29830 29826 29833 29831 29836 29848 29846 29826 29850 29841 29856 29809 29850 29846
29823 29835 29806 29827 29827 29832 29840 29848 29819 29839 29842 29846 29859 29859 29860
29809 29830 29805 29828 29836 29807 29825 29849 29822 29839 29844 29853 29860 29859 29859
29799 29819 29794 29818 29817 29821 29807 29847 29810 29837 29842 29853 29806 29860 29861
29799 29825 29817 29816 29816 29831 29851 29839 29844 29838 29842 29854 29870 29864 29859
29821 29827 29793 29819 29831 29830 29841 29845 29814 29854 29847 29852 29862 29859 29859
29822 29826 29821 29833 29828 29839 29852 29847 29820 29852 29848 29859 29810 29860 29859
29827 29837 29836 29827 29828 29843 29853 29846 29810 29855 29850 29853 29867 29857 29859
29823 29834 29804 29819 29827 29838 29856 29846 29827 29852 29852 29859 29811 29847 29859
29834 29834 29806 29829 29827 29844 29855 29849 29812 29853 29813 29846 29868 29847 29853
29806 29830 29802 29803 29822 29834 29852 29840 29853 29851 29841 29844 29856 29851 29851
29829 29810 29811 29831 29826 29840 29807 29850 29830 29851 29841 29853 29802 29851 29859
29803 29837 29801 29824 29825 29834 29829 29846 29816 29851 29841 29856 29859 29849 29850
29833 29820 29807 29829 29834 29822 29840 29847 29813 29838 29842 29845 29856 29851 29859
29823 29826 29791 29820 29816 29830 29840 29849 29807 29837 29815 29854 29805 29858 29853
29805 29829 29801 29833 29826 29843 29841 29846 29820 29839 29805 29856 29860 29852 29859

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 29804 bytes 100%
1,000 29797 bytes -7 bytes 100%
10,000 29795 bytes -2 bytes 100%
100,000 29792 bytes -3 bytes 0.87%
1,000,000 29791 bytes -1 byte 0.29%
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
29901 bytes +110 bytes (+0.37%) +3 bytes
29904 bytes +113 bytes (+0.38%) +6 bytes
29945 bytes +154 bytes (+0.52%) +47 bytes
29898 bytes +107 bytes (+0.36%)
29940 bytes +149 bytes (+0.50%) +42 bytes
29932 bytes +141 bytes (+0.47%) +34 bytes
29939 bytes +148 bytes (+0.50%) +41 bytes
29921 bytes +130 bytes (+0.44%) +23 bytes
29964 bytes +173 bytes (+0.58%) +66 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 23480 bytes -6311 bytes (-21.18%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 26437 bytes -3354 bytes (-11.26%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 27442 bytes -2349 bytes (-7.88%)
Brotli (Wikipedia) brotli brotli -q 11 27502 bytes -2289 bytes (-7.68%)
LZMA2 (Wikipedia) xz xz -9 28444 bytes -1347 bytes (-4.52%)
Zstandard (Wikipedia) zstd zstd -19 29249 bytes -542 bytes (-1.82%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 29311 bytes -480 bytes (-1.61%)

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.