Choose a version:
28% The original file has 1870642 bytes (1,826.8k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 532092 bytes (519.6k, 28%).

After GZIP compression these minified files vary in size:
Boot
  164317 bytes (160.5k)
CDN
cdnjs
  133992 bytes (130.9k)
CDN
gzip -6 (default)
  132168 bytes (129.1k)
local copy
gzip -9
  131630 bytes (128.5k)
local copy
jsdelivr
  131503 bytes (128.4k)
CDN
7zip -mx=9 -tgzip
  127145 bytes (124.2k)
local copy
zultra
  127004 bytes (124.0k)
local copy
libdeflate -12
  126971 bytes (124.0k)
local copy
pigz -11 -n
  126838 bytes (123.9k)
local copy
kzip -s0 -rn -b5
  126640 bytes (123.7k)
local copy
Zopfli
  126594 bytes (123.6k)
local copy
Zopfli (defluff)
  126592 bytes (123.6k)
local copy

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

You will automatically get the smallest Ember 2.12.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 4909 bytes by using my Ember 2.12.0 Zopfli version instead of the best available CDN (3.88% smaller than jsdelivr, 126594 vs. 131503 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 --mls16384 --bsr6 --lazy --ohh

(found March 31, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 16384  --mls16384
block splitting recursion 6  --bsr6
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 2 more bytes (126592 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.12.0/ember.min.js --location | md5sum
7527e9d18d08cb3d25adbbbbcc789478  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.12.0.min.zopfli.js.gz | md5sum
7527e9d18d08cb3d25adbbbbcc789478  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 164317 bytes 7527e9d18d08cb3d25adbbbbcc789478 March 17, 2017 @ 06:22
cdnjs 133992 bytes 7527e9d18d08cb3d25adbbbbcc789478 March 15, 2017 @ 23:18
jsdelivr 131503 bytes 7527e9d18d08cb3d25adbbbbcc789478 March 15, 2017 @ 23:04

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
126594 bytes -2 bytes zopfli --i1000000 --mls16384 --bsr6 --lazy --ohh March 31, 2017 @ 08:24
126596 bytes -4 bytes zopfli --i100000 --mls16384 --bsr9 --lazy --ohh March 29, 2017 @ 19:16
126600 bytes -2 bytes zopfli --i10000 --mls16384 --bsr9 --lazy --ohh March 29, 2017 @ 03:48
126602 bytes -7 bytes zopfli --i10000 --mls16384 --bsr17 --lazy --ohh March 29, 2017 @ 03:25
126609 bytes -33 bytes zopfli --i1000 --mls2048 --bsr4 --lazy --ohh March 28, 2017 @ 23:09
126642 bytes zopfli --i100 --mls16384 --bsr9 --lazy --ohh March 28, 2017 @ 22:58

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

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
126748 126749 126748 126748 126749 126747 126748 126751 126718 126700 126727 126747 126745 126647 126746
126653 126648 126710 126748 126749 126747 126748 126751 126712 126624 126602 126659 126745 126601 126746
126644 126638 126674 126674 126673 126673 126674 126676 126654 126611 126614 126612 126745 126594 126674
126649 126643 126650 126680 126648 126648 126680 126681 126641 126610 126613 126610 126745 126617 126671
126613 126647 126673 126674 126672 126672 126674 126679 126640 126613 126611 126646 126647 126605 126672
126619 126613 126643 126672 126673 126680 126680 126680 126649 126608 126603 126644 126646 126594 126671
126642 126640 126672 126672 126673 126680 126675 126674 126641 126630 126608 126612 126641 126606 126671
126641 126645 126679 126681 126684 126671 126673 126674 126653 126632 126622 126614 126642 126612 126671
126673 126672 126672 126672 126677 126677 126671 126680 126654 126634 126623 126615 126648 126608 126671
126683 126642 126679 126681 126673 126680 126679 126676 126652 126656 126619 126609 126645 126608 126671
126674 126643 126644 126675 126675 126646 126673 126674 126657 126648 126626 126611 126674 126605 126671
126681 126642 126651 126687 126657 126657 126682 126683 126648 126649 126632 126611 126645 126612 126674
126675 126645 126643 126674 126673 126648 126742 126674 126638 126610 126609 126611 126646 126612 126672
126654 126655 126658 126682 126686 126658 126679 126674 126658 126625 126647 126610 126645 126602 126671
126650 126639 126652 126679 126673 126680 126674 126674 126648 126638 126623 126613 126672 126602 126671
126638 126639 126646 126672 126672 126673 126674 126674 126659 126638 126639 126612 126603 126609 126671
126672 126645 126673 126681 126673 126680 126684 126679 126662 126645 126624 126613 126644 126609 126673
126649 126652 126654 126681 126673 126658 126680 126674 126642 126646 126625 126627 126644 126609 126671
126638 126613 126646 126672 126684 126645 126674 126678 126641 126637 126621 126613 126641 126604 126671
126673 126613 126638 126673 126686 126680 126671 126673 126648 126630 126622 126614 126645 126613 126671
126640 126646 126673 126673 126673 126646 126674 126674 126652 126630 126623 126611 126645 126609 126671
126641 126644 126674 126672 126675 126646 126674 126673 126659 126629 126637 126611 126645 126599 126672
126634 126636 126673 126672 126673 126742 126674 126674 126647 126626 126614 126614 126604 126609 126671

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 126642 bytes 100%
1,000 126609 bytes -33 bytes 100%
10,000 126600 bytes -9 bytes 100%
100,000 126596 bytes -4 bytes 0.87%
1,000,000 126594 bytes -2 bytes 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
126697 bytes +103 bytes (+0.08%) +57 bytes
126722 bytes +128 bytes (+0.10%) +82 bytes
126768 bytes +174 bytes (+0.14%) +128 bytes
126741 bytes +147 bytes (+0.12%) +101 bytes
126686 bytes +92 bytes (+0.07%) +46 bytes
126640 bytes +46 bytes (+0.04%)
126701 bytes +107 bytes (+0.08%) +61 bytes
126744 bytes +150 bytes (+0.12%) +104 bytes
126764 bytes +170 bytes (+0.13%) +124 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 85656 bytes -40938 bytes (-32.34%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 92674 bytes -33920 bytes (-26.79%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 96471 bytes -30123 bytes (-23.79%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 106348 bytes -20246 bytes (-15.99%)
Brotli (Wikipedia) brotli brotli -q 11 109989 bytes -16605 bytes (-13.12%)
LZMA2 (Wikipedia) xz xz -9 111900 bytes -14694 bytes (-11.61%)
Zstandard (Wikipedia) zstd zstd -19 115360 bytes -11234 bytes (-8.87%)

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.