Choose a version:
26% The original file has 602292 bytes (588.2k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 157283 bytes (153.6k, 26%).

After GZIP compression these minified files vary in size:
Boot
  62404 bytes (60.9k)
CDN
cdnjs
  54108 bytes (52.8k)
CDN
gzip -6 (default)
  53871 bytes (52.6k)
local copy
gzip -9
  53806 bytes (52.5k)
local copy
7zip -mx=9 -tgzip
  51210 bytes (50.0k)
local copy
libdeflate -12
  51183 bytes (50.0k)
local copy
kzip -s0 -rn -b1
  51134 bytes (49.9k)
local copy
zultra
  51130 bytes (49.9k)
local copy
pigz -11 -n
  51118 bytes (49.9k)
local copy
Zopfli
  51019 bytes (49.8k)
local copy
Zopfli (defluff)
  51018 bytes (49.8k)
local copy

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

You will automatically get the smallest Dojo 1.8.5 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 3089 bytes by using my Dojo 1.8.5 Zopfli version instead of the best available CDN (6.05% smaller than cdnjs, 51019 vs. 54108 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 --mls16 --bsr11 --lazy --ohh

(found February 25, 2020)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 16  --mls16
block splitting recursion 11  --bsr11
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 (51018 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.8.5/dojo.js --location | md5sum
42baf02400007d06b7a84600a4e3ddd5  -
curl --silent --compressed https://minime.stephan-brumme.com/files/dojo/dojo-1.8.5.min.zopfli.js.gz | md5sum
42baf02400007d06b7a84600a4e3ddd5  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 62404 bytes 42baf02400007d06b7a84600a4e3ddd5 March 19, 2015 @ 15:39
cdnjs 54108 bytes 42baf02400007d06b7a84600a4e3ddd5 February 8, 2015 @ 14:45

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
51019 bytes -1 byte zopfli --i1000000 --mls16 --bsr11 --lazy --ohh February 25, 2020 @ 00:06
51020 bytes -5 bytes zopfli --i100000 --mls16 --bsr11 --lazy --ohh December 3, 2015 @ 13:34
51025 bytes -3 bytes zopfli --i10000 --mls16384 --bsr25 --lazy --ohh October 13, 2015 @ 20:00
51028 bytes -1 byte zopfli --i1000 --mls16384 --bsr25 --lazy --ohh September 23, 2015 @ 03:03
51029 bytes -1 byte zopfli --i1000 --mls16 --bsr11 --lazy --ohh September 19, 2015 @ 12:59
51030 bytes -1 byte zopfli --i1000 --mls16 --bsr13 --lazy --ohh September 19, 2015 @ 12:48
51031 bytes -1 byte zopfli --i1000 --mls64 --bsr10 --lazy --ohh September 12, 2015 @ 15:48
51032 bytes -4 bytes zopfli --i1000 --mls512 --bsr11 --lazy --ohh September 10, 2015 @ 20:10
51036 bytes -1 byte zopfli --i1000 --mls512 --bsr2 --lazy --ohh September 10, 2015 @ 20:10
51037 bytes zopfli --i100 --mls1024 --bsr10 --lazy --ohh September 10, 2015 @ 15:05

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 @ 21:40.

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
51035 51033 51035 51034 51033 51031 51039 51032 51031 51033 51036 51054 51061 51047 51031
51037 51034 51032 51029 51036 51034 51036 51043 51035 51039 51041 51044 51053 51042 51036
51029 51038 51028 51028 51031 51039 51035 51036 51034 51030 51048 51049 51052 51038 51035
51026 51051 51051 51092 51028 51051 51037 51030 51034 51050 51036 51045 51057 51031 51054
51028 51029 51031 51025 51027 51046 51033 51037 51035 51042 51051 51055 51056 51047 51035
51028 51035 51030 51039 51026 51035 51036 51043 51042 51042 51047 51050 51050 51046 51035
51025 51029 51049 51051 51028 51027 51037 51037 51033 51030 51033 51051 51052 51045 51033
51029 51030 51055 51019 51028 51030 51038 51033 51029 51037 51046 51052 51036 51040 51034
51026 51019 51051 51031 51022 51033 51034 51033 51034 51049 51040 51050 51054 51029 51035
51036 51026 51031 51020 51027 51034 51035 51033 51034 51038 51030 51050 51049 51037 51035
51026 51056 51052 51093 51027 51027 51039 51034 51041 51047 51029 51049 51050 51037 51035
51030 51023 51028 51055 51027 51049 51035 51033 51035 51047 51041 51050 51047 51036 51035
51025 51027 51027 51097 51027 51035 51036 51034 51034 51048 51030 51050 51056 51038 51034
51030 51029 51031 51055 51027 51090 51034 51033 51041 51037 51046 51051 51052 51032 51035
51030 51028 51029 51030 51033 51035 51034 51034 51036 51038 51051 51050 51052 51032 51034
51027 51030 51028 51051 51027 51027 51036 51033 51035 51042 51045 51050 51050 51035 51035
51026 51021 51027 51029 51027 51035 51034 51029 51048 51040 51046 51050 51054 51034 51035
51024 51029 51031 51051 51027 51035 51034 51030 51035 51039 51030 51050 51055 51038 51035
51021 51029 51032 51028 51028 51027 51035 51035 51033 51037 51047 51050 51053 51035 51035
51029 51028 51031 51022 51029 51089 51035 51029 51034 51048 51044 51046 51056 51033 51033
51033 51027 51056 51054 51032 51035 51038 51035 51036 51049 51053 51049 51055 51021 51035
51021 51027 51031 51028 51029 51044 51035 51036 51029 51051 51053 51050 51061 51035 51035
51024 51029 51028 51028 51027 51035 51034 51028 51031 51048 51049 51046 51052 51034 51035

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 51033 bytes 100%
1,000 51028 bytes -5 bytes 100%
10,000 51025 bytes -3 bytes 100%
100,000 51020 bytes -5 bytes 4.35%
1,000,000 51019 bytes -1 byte 0.87%
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
51192 bytes +173 bytes (+0.34%) +58 bytes
51134 bytes +115 bytes (+0.23%)
51153 bytes +134 bytes (+0.26%) +19 bytes
51196 bytes +177 bytes (+0.35%) +62 bytes
51216 bytes +197 bytes (+0.39%) +82 bytes
51242 bytes +223 bytes (+0.44%) +108 bytes
51254 bytes +235 bytes (+0.46%) +120 bytes
51283 bytes +264 bytes (+0.52%) +149 bytes
51288 bytes +269 bytes (+0.53%) +154 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 37526 bytes -13493 bytes (-26.45%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 44393 bytes -6626 bytes (-12.99%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 45702 bytes -5317 bytes (-10.42%)
Brotli (Wikipedia) brotli brotli -q 11 46860 bytes -4159 bytes (-8.15%)
LZMA2 (Wikipedia) xz xz -9 47956 bytes -3063 bytes (-6.00%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 49223 bytes -1796 bytes (-3.52%)
Zstandard (Wikipedia) zstd zstd -19 49406 bytes -1613 bytes (-3.16%)

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.