Choose a version:
30% The original file has 1606339 bytes (1,568.7k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 487357 bytes (475.9k, 30%).

After GZIP compression these minified files vary in size:
Boot
  151035 bytes (147.5k)
CDN
cdnjs
  124341 bytes (121.4k)
CDN
gzip -6 (default)
  122878 bytes (120.0k)
local copy
gzip -9
  122356 bytes (119.5k)
local copy
zultra
  118175 bytes (115.4k)
local copy
libdeflate -12
  118139 bytes (115.4k)
local copy
7zip -mx=9 -tgzip
  118114 bytes (115.3k)
local copy
pigz -11 -n
  117999 bytes (115.2k)
local copy
kzip -s0 -rn -b3
  117885 bytes (115.1k)
local copy
Zopfli
  117866 bytes (115.1k)
local copy
Zopfli (defluff)
  117862 bytes (115.1k)
local copy

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

You will automatically get the smallest Ember 2.16.0 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 6475 bytes by using my Ember 2.16.0 Zopfli version instead of the best available CDN (5.49% smaller than cdnjs, 117866 vs. 124341 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 --mls2048 --bsr8 --lazy --ohh

(found October 17, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 2048  --mls2048
block splitting recursion 8  --bsr8
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 4 more bytes (117862 bytes).

Verify file integrity

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

MD5:
curl --silent --compressed https://builds.emberjs.com/tags/v2.16.0/ember.min.js --location | md5sum
1da5b1da7282fc2d41db98c5da17af3e  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.16.0.min.zopfli.js.gz | md5sum
1da5b1da7282fc2d41db98c5da17af3e  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v2.16.0/ember.min.js --location | sha1sum
b5add1f7fd1c33e53c743a0f99939edf53564d1c  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.16.0.min.zopfli.js.gz | sha1sum
b5add1f7fd1c33e53c743a0f99939edf53564d1c  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 151035 bytes 1da5b1da7282fc2d41db98c5da17af3e November 14, 2017 @ 17:09
cdnjs 124341 bytes 1da5b1da7282fc2d41db98c5da17af3e October 12, 2017 @ 13:20

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

Other Versions

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

3.0.0,
2.18.2, 2.18.1, 2.18.0,
2.17.2, 2.17.1, 2.17.0,
2.16.2, 2.16.1, 2.16.0,
2.15.3, 2.15.2, 2.15.1, 2.15.0,
2.14.1, 2.14.0,
2.13.4, 2.13.3, 2.13.2, 2.13.1, 2.13.0,
2.12.2, 2.12.1, 2.12.0,
2.11.3, 2.11.2, 2.11.1, 2.11.0,
2.10.2, 2.10.1, 2.10.0,
2.9.1, 2.9.0,
2.8.3, 2.8.2, 2.8.1, 2.8.0,
2.7.3, 2.7.2, 2.7.1, 2.7.0,
2.6.2, 2.6.1, 2.6.0,
2.5.1, 2.5.0,
2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0,
2.3.1, 2.3.0,
2.2.2, 2.2.1, 2.2.0,
2.1.2, 2.1.1, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0,
1.13.13, 1.13.12, 1.13.11, 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.2, 1.12.1, 1.12.0,
1.11.4, 1.11.3, 1.11.2, 1.11.1, 1.11.0,
1.10.1, 1.10.0,
1.9.1, 1.9.0,
1.8.1, 1.8.0,
1.7.1, 1.7.0,
1.6.1, 1.6.0,
1.5.1, 1.5.0,
1.4.0,
1.3.2, 1.3.1, 1.3.0,
1.2.2, 1.2.1, 1.2.0,
1.0.1, 1.0.0

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

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
117866 bytes -3 bytes zopfli --i1000000 --mls2048 --bsr8 --lazy --ohh October 17, 2017 @ 16:55
117869 bytes -3 bytes zopfli --i100000 --mls2048 --bsr8 --lazy --ohh October 16, 2017 @ 13:30
117872 bytes -5 bytes zopfli --i10000 --mls2048 --bsr8 --lazy --ohh October 16, 2017 @ 11:27
117877 bytes -8 bytes zopfli --i10000 --mls32 --bsr21 --lazy --ohh October 16, 2017 @ 11:03
117885 bytes -4 bytes zopfli --i1000 --mls32 --bsr21 --lazy --ohh October 16, 2017 @ 10:39
117889 bytes -12 bytes zopfli --i1000 --mls1024 --bsr14 --lazy --ohh October 16, 2017 @ 10:36
117901 bytes -1 byte zopfli --i1000 --mls4 --bsr16 --lazy --ohh October 16, 2017 @ 10:35
117902 bytes zopfli --i100 --mls1024 --bsr14 --lazy --ohh October 16, 2017 @ 10:11

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:51.

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 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
117904 117905 117900 117903 117899 117899 117899 117899 117900 117906 117884 117878 117891 117895 117943
117905 117901 117899 117893 117904 117882 117901 117903 117901 117884 117888 117884 117912 117893 117947
117897 117915 117897 117879 117879 117879 117894 117891 117892 117894 117878 117897 117878 117895 117956
117889 117893 117878 117881 117879 117896 117889 117891 117896 117895 117879 117879 117898 117879 117911
117888 117888 117899 117878 117893 117901 117889 117893 117896 117897 117866 117878 117911 117895 117937
117890 117897 117877 117878 117878 117878 117895 117893 117888 117880 117875 117895 117910 117897 117904
117881 117889 117886 117885 117886 117880 117898 117895 117889 117876 117889 117894 117910 117895 117942
117897 117889 117875 117880 117877 117879 117880 117877 117884 117879 117888 117879 117910 117903 117905
117879 117877 117876 117876 117876 117878 117891 117895 117893 117879 117887 117887 117910 117903 117942
117895 117875 117882 117880 117878 117885 117894 117887 117887 117895 117900 117890 117936 117903 117938
117886 117883 117895 117883 117880 117880 117892 117894 117877 117877 117878 117892 117911 117904 117906
117876 117881 117880 117877 117878 117878 117902 117878 117877 117882 117879 117879 117938 117903 117941
117877 117878 117876 117881 117876 117880 117875 117878 117878 117875 117888 117876 117909 117896 117910
117876 117877 117877 117878 117884 117880 117884 117890 117878 117878 117887 117878 117911 117904 117894
117891 117892 117891 117876 117891 117898 117892 117890 117896 117890 117888 117878 117908 117904 117937
117892 117898 117879 117879 117895 117877 117896 117887 117878 117879 117892 117877 117909 117902 117903
117892 117901 117875 117881 117877 117879 117896 117879 117891 117878 117876 117878 117910 117903 117945
117880 117879 117879 117878 117877 117878 117883 117894 117881 117879 117888 117877 117910 117903 117946
117900 117892 117898 117881 117899 117891 117896 117892 117893 117895 117887 117878 117910 117904 117948
117892 117890 117888 117877 117899 117901 117902 117899 117891 117877 117890 117878 117910 117904 117906
117888 117891 117880 117878 117879 117879 117885 117878 117879 117878 117887 117878 117909 117903 117901
117880 117880 117880 117879 117877 117880 117885 117891 117890 117878 117889 117879 117909 117883 117951
117877 117877 117879 117881 117878 117882 117894 117877 117878 117879 117892 117877 117910 117903 117903

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 117902 bytes 100%
1,000 117883 bytes -19 bytes 100%
10,000 117872 bytes -11 bytes 100%
100,000 117869 bytes -3 bytes 0.29%
1,000,000 117866 bytes -3 bytes 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
117959 bytes +93 bytes (+0.08%) +74 bytes
117976 bytes +110 bytes (+0.09%) +91 bytes
117943 bytes +77 bytes (+0.07%) +58 bytes
117885 bytes +19 bytes (+0.02%)
117942 bytes +76 bytes (+0.06%) +57 bytes
117949 bytes +83 bytes (+0.07%) +64 bytes
117956 bytes +90 bytes (+0.08%) +71 bytes
117903 bytes +37 bytes (+0.03%) +18 bytes
117944 bytes +78 bytes (+0.07%) +59 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 81349 bytes -36517 bytes (-30.98%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 88158 bytes -29708 bytes (-25.20%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 94704 bytes -23162 bytes (-19.65%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 101025 bytes -16841 bytes (-14.29%)
Brotli (Wikipedia) brotli brotli -q 11 102873 bytes -14993 bytes (-12.72%)
LZMA2 (Wikipedia) xz xz -9 104456 bytes -13410 bytes (-11.38%)
Zstandard (Wikipedia) zstd zstd -19 107463 bytes -10403 bytes (-8.83%)

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.