Choose a version:
29% The original file has 1736313 bytes (1,695.6k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 501225 bytes (489.5k, 29%).

After GZIP compression these minified files vary in size:
Boot
  160083 bytes (156.3k)
CDN
cdnjs
  131763 bytes (128.7k)
CDN
gzip -6 (default)
  130046 bytes (127.0k)
local copy
jsdelivr
  129545 bytes (126.5k)
CDN
gzip -9
  129537 bytes (126.5k)
local copy
7zip -mx=9 -tgzip
  124975 bytes (122.0k)
local copy
zultra
  124938 bytes (122.0k)
local copy
libdeflate -12
  124882 bytes (122.0k)
local copy
pigz -11 -n
  124839 bytes (121.9k)
local copy
kzip -s0 -rn -b0
  124705 bytes (121.8k)
local copy
Zopfli
  124650 bytes (121.7k)
local copy
Zopfli (defluff)
  124648 bytes (121.7k)
local copy

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

You will automatically get the smallest Ember 2.13.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 4895 bytes by using my Ember 2.13.0 Zopfli version instead of the best available CDN (3.93% smaller than jsdelivr, 124650 vs. 129545 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 --mls128 --bsr18 --lazy --ohh

(found May 5, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 128  --mls128
block splitting recursion 18  --bsr18
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 (124648 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.13.0/ember.min.js --location | md5sum
540d8a60dfc9b983b3b2e91bf553c203  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.13.0.min.zopfli.js.gz | md5sum
540d8a60dfc9b983b3b2e91bf553c203  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v2.13.0/ember.min.js --location | sha1sum
79d417da85c2a8895a1bd7c3c108a2ca57e2e73e  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.13.0.min.zopfli.js.gz | sha1sum
79d417da85c2a8895a1bd7c3c108a2ca57e2e73e  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 160083 bytes 540d8a60dfc9b983b3b2e91bf553c203 May 3, 2017 @ 07:19
cdnjs 131763 bytes 540d8a60dfc9b983b3b2e91bf553c203 April 28, 2017 @ 00:18
jsdelivr 129545 bytes 540d8a60dfc9b983b3b2e91bf553c203 April 27, 2017 @ 23:34

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
124650 bytes -2 bytes zopfli --i1000000 --mls128 --bsr18 --lazy --ohh May 5, 2017 @ 08:09
124652 bytes -9 bytes zopfli --i100000 --mls128 --bsr18 --lazy --ohh May 2, 2017 @ 12:59
124661 bytes -15 bytes zopfli --i10000 --mls128 --bsr18 --lazy --ohh April 29, 2017 @ 01:13
124676 bytes -24 bytes zopfli --i1000 --mls1024 --bsr19 --lazy --ohh April 28, 2017 @ 15:33
124700 bytes zopfli --i100 --mls32 --bsr15 --lazy --ohh April 28, 2017 @ 14:39

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

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
124695 124694 124693 124693 124669 124680 124680 124678 124672 124687 124679 124682 124687 124678 124688
124686 124685 124683 124677 124676 124676 124680 124678 124676 124686 124670 124674 124689 124679 124692
124681 124677 124683 124682 124669 124672 124675 124683 124676 124681 124677 124671 124682 124685 124678
124684 124684 124679 124678 124683 124672 124670 124685 124666 124658 124672 124668 124675 124674 124675
124680 124673 124672 124682 124678 124670 124667 124666 124678 124678 124674 124684 124682 124673 124681
124679 124680 124676 124667 124678 124678 124674 124680 124671 124671 124683 124671 124684 124681 124669
124683 124683 124676 124681 124710 124677 124670 124669 124675 124674 124674 124673 124675 124682 124673
124675 124676 124678 124672 124682 124681 124679 124666 124666 124676 124674 124673 124681 124681 124671
124690 124710 124675 124668 124669 124675 124672 124697 124667 124678 124668 124676 124678 124670 124690
124666 124674 124676 124670 124670 124698 124668 124676 124665 124677 124677 124673 124671 124680 124682
124665 124661 124676 124668 124667 124701 124654 124666 124667 124673 124667 124672 124685 124674 124691
124674 124676 124671 124665 124672 124698 124676 124667 124674 124678 124683 124702 124685 124680 124681
124674 124675 124676 124668 124679 124701 124676 124664 124677 124682 124676 124674 124686 124682 124684
124672 124689 124667 124666 124669 124699 124668 124698 124674 124699 124674 124673 124687 124673 124677
124679 124676 124684 124673 124703 124677 124650 124702 124671 124667 124668 124672 124685 124681 124677
124667 124671 124678 124675 124667 124674 124669 124668 124671 124671 124675 124655 124688 124680 124681
124675 124673 124668 124670 124668 124674 124698 124667 124666 124678 124666 124666 124672 124684 124691
124667 124672 124678 124682 124673 124676 124675 124666 124665 124672 124673 124666 124678 124681 124684
124677 124674 124674 124670 124678 124678 124668 124667 124666 124672 124669 124673 124688 124688 124681
124681 124676 124679 124682 124679 124678 124668 124668 124665 124679 124674 124673 124678 124684 124693
124674 124675 124669 124672 124668 124698 124668 124667 124667 124670 124673 124681 124685 124679 124693
124671 124668 124675 124674 124668 124698 124673 124673 124672 124671 124672 124672 124686 124680 124677
124694 124691 124677 124678 124698 124697 124677 124679 124665 124667 124677 124680 124684 124678 124678

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 124700 bytes 100%
1,000 124676 bytes -24 bytes 100%
10,000 124661 bytes -15 bytes 100%
100,000 124652 bytes -9 bytes 1.45%
1,000,000 124650 bytes -2 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
124705 bytes +55 bytes (+0.04%)
124737 bytes +87 bytes (+0.07%) +32 bytes
124729 bytes +79 bytes (+0.06%) +24 bytes
124733 bytes +83 bytes (+0.07%) +28 bytes
124767 bytes +117 bytes (+0.09%) +62 bytes
124831 bytes +181 bytes (+0.15%) +126 bytes
124864 bytes +214 bytes (+0.17%) +159 bytes
124865 bytes +215 bytes (+0.17%) +160 bytes
124894 bytes +244 bytes (+0.20%) +189 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 85413 bytes -39237 bytes (-31.48%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 92434 bytes -32216 bytes (-25.85%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 99893 bytes -24757 bytes (-19.86%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 105992 bytes -18658 bytes (-14.97%)
Brotli (Wikipedia) brotli brotli -q 11 108589 bytes -16061 bytes (-12.88%)
LZMA2 (Wikipedia) xz xz -9 110388 bytes -14262 bytes (-11.44%)
Zstandard (Wikipedia) zstd zstd -19 113572 bytes -11078 bytes (-8.89%)

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.