Choose a version:
27% The original file has 1599780 bytes (1,562.3k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 430278 bytes (420.2k, 27%).

After GZIP compression these minified files vary in size:
Boot
  135554 bytes (132.4k)
CDN
cdnjs
  111667 bytes (109.0k)
CDN
gzip -6 (default)
  110054 bytes (107.5k)
local copy
gzip -9
  109677 bytes (107.1k)
local copy
jsdelivr
  109653 bytes (107.1k)
CDN
libdeflate -12
  106105 bytes (103.6k)
local copy
7zip -mx=9 -tgzip
  106087 bytes (103.6k)
local copy
zultra
  106039 bytes (103.6k)
local copy
pigz -11 -n
  105889 bytes (103.4k)
local copy
kzip -s0 -rn -b5
  105667 bytes (103.2k)
local copy
Zopfli
  105638 bytes (103.2k)
local copy
Zopfli (defluff)
  105634 bytes (103.2k)
local copy

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

You will automatically get the smallest Ember 2.0.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 4015 bytes by using my Ember 2.0.0 Zopfli version instead of the best available CDN (3.80% smaller than jsdelivr, 105638 vs. 109653 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 --i100000 --mb8 --mls8 --bsr30 --lazy --ohh

(found July 21, 2016)
Description Value Parameter
iterations 100000  --i100000
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 4 more bytes (105634 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.0.0/ember.min.js --location | md5sum
ac192c6e02f56e4b5e89dd951311728d  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.0.0.min.zopfli.js.gz | md5sum
ac192c6e02f56e4b5e89dd951311728d  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v2.0.0/ember.min.js --location | sha1sum
46a77525359100d477314c3b76fd0883ec64e36a  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.0.0.min.zopfli.js.gz | sha1sum
46a77525359100d477314c3b76fd0883ec64e36a  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 135554 bytes ac192c6e02f56e4b5e89dd951311728d August 14, 2015 @ 04:46
cdnjs 111667 bytes ac192c6e02f56e4b5e89dd951311728d August 13, 2015 @ 11:04
jsdelivr 109653 bytes ac192c6e02f56e4b5e89dd951311728d August 13, 2015 @ 09: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
105638 bytes -4 bytes zopfli --i100000 --mls8 --bsr30 --lazy --ohh July 21, 2016 @ 15:00
105642 bytes -5 bytes zopfli --i10000 --mls8 --bsr30 --lazy --ohh September 24, 2015 @ 16:18
105647 bytes -1 byte zopfli --i1000 --mls8 --bsr30 --lazy --ohh September 24, 2015 @ 13:20
105648 bytes -11 bytes zopfli --i1000 --mls64 --bsr8 --lazy --ohh September 11, 2015 @ 19:30
105659 bytes -1 byte zopfli --i1000 --mls1024 --bsr7 --lazy --ohh September 11, 2015 @ 13:08
105660 bytes -8 bytes zopfli --i1000 --mls128 --bsr8 --lazy --ohh September 11, 2015 @ 13:04
105668 bytes -2 bytes zopfli --i1000 --mls1024 --bsr4 --lazy --ohh September 10, 2015 @ 14:47
105670 bytes -20 bytes zopfli --i1000 --mls512 --bsr6 --lazy --ohh September 10, 2015 @ 14:43
105690 bytes -7 bytes zopfli --i1000 --mls512 --bsr10 --lazy --ohh September 10, 2015 @ 14:41
105697 bytes zopfli --i100 --mls512 --bsr6 --lazy --ohh September 10, 2015 @ 13:55

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 100,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
105703 105806 105703 105778 105781 105734 105806 105806 105807 105810 105807 105805 105833 105834 105800
105728 105732 105699 105699 105673 105671 105673 105679 105668 105661 105667 105798 105833 105667 105804
105673 105672 105678 105682 105695 105666 105667 105705 105667 105667 105665 105671 105833 105698 105685
105703 105724 105669 105662 105671 105664 105662 105669 105654 105654 105663 105795 105684 105647 105796
105706 105685 105712 105685 105666 105640 105648 105674 105680 105679 105679 105672 105833 105797 105797
105711 105709 105698 105705 105672 105658 105660 105695 105680 105678 105703 105796 105795 105797 105795
105668 105668 105669 105671 105661 105660 105701 105669 105681 105714 105672 105806 105795 105794 105795
105702 105714 105640 105677 105666 105658 105659 105692 105677 105663 105701 105795 105795 105795 105798
105653 105676 105662 105670 105671 105659 105710 105689 105677 105684 105794 105795 105795 105795 105796
105706 105698 105715 105682 105662 105658 105667 105674 105673 105669 105700 105681 105796 105795 105797
105673 105680 105714 105674 105702 105654 105663 105668 105705 105708 105697 105795 105797 105798 105797
105693 105677 105683 105686 105699 105657 105658 105692 105676 105660 105703 105795 105796 105798 105795
105703 105714 105682 105683 105666 105657 105659 105673 105715 105667 105713 105795 105796 105796 105794
105707 105693 105684 105685 105696 105659 105699 105677 105680 105711 105670 105708 105795 105796 105804
105704 105703 105682 105680 105697 105652 105664 105692 105704 105663 105671 105796 105795 105798 105794
105707 105670 105664 105679 105696 105663 105658 105678 105667 105690 105793 105706 105797 105796 105797
105668 105709 105676 105683 105695 105647 105709 105671 105682 105711 105704 105805 105796 105795 105798
105667 105702 105679 105673 105659 105652 105678 105681 105712 105666 105701 105802 105794 105798 105798
105668 105663 105678 105674 105676 105658 105679 105666 105705 105667 105701 105686 105796 105798 105795
105696 105674 105678 105678 105673 105658 105664 105682 105680 105668 105674 105795 105795 105797 105797
105708 105703 105684 105673 105665 105659 105667 105667 105681 105681 105803 105806 105794 105796 105797
105707 105682 105638 105718 105667 105653 105699 105670 105707 105688 105700 105698 105795 105796 105800
105669 105712 105708 105714 105665 105663 105694 105681 105676 105689 105703 105697 105795 105797 105797

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 105681 bytes 100%
1,000 105647 bytes -34 bytes 100%
10,000 105642 bytes -5 bytes 100%
100,000 105638 bytes -4 bytes 0.87%
1,000,000
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
105671 bytes +33 bytes (+0.03%) +4 bytes
105809 bytes +171 bytes (+0.16%) +142 bytes
105817 bytes +179 bytes (+0.17%) +150 bytes
105763 bytes +125 bytes (+0.12%) +96 bytes
105700 bytes +62 bytes (+0.06%) +33 bytes
105667 bytes +29 bytes (+0.03%)
105735 bytes +97 bytes (+0.09%) +68 bytes
105762 bytes +124 bytes (+0.12%) +95 bytes
105816 bytes +178 bytes (+0.17%) +149 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 72588 bytes -33050 bytes (-31.29%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 77660 bytes -27978 bytes (-26.48%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 83309 bytes -22329 bytes (-21.14%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 88367 bytes -17271 bytes (-16.35%)
Brotli (Wikipedia) brotli brotli -q 11 92059 bytes -13579 bytes (-12.85%)
LZMA2 (Wikipedia) xz xz -9 94208 bytes -11430 bytes (-10.82%)
Zstandard (Wikipedia) zstd zstd -19 96873 bytes -8765 bytes (-8.30%)

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.