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

After GZIP compression these minified files vary in size:
Boot
  136138 bytes (132.9k)
CDN
cdnjs
  112186 bytes (109.6k)
CDN
gzip -6 (default)
  110540 bytes (107.9k)
local copy
gzip -9
  110160 bytes (107.6k)
local copy
7zip -mx=9 -tgzip
  106546 bytes (104.0k)
local copy
libdeflate -12
  106512 bytes (104.0k)
local copy
zultra
  106504 bytes (104.0k)
local copy
pigz -11 -n
  106353 bytes (103.9k)
local copy
kzip -s0 -rn -b5
  106133 bytes (103.6k)
local copy
Zopfli
  106103 bytes (103.6k)
local copy
Zopfli (defluff)
  106100 bytes (103.6k)
local copy

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

You will automatically get the smallest Ember 2.0.2 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 6083 bytes by using my Ember 2.0.2 Zopfli version instead of the best available CDN (5.73% smaller than cdnjs, 106103 vs. 112186 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 --mls64 --bsr30 --lazy --ohh

(found September 30, 2015)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 64  --mls64
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 3 more bytes (106100 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.2/ember.min.js --location | md5sum
0fe2eeabc5125d669ff7754981af20ab  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.0.2.min.zopfli.js.gz | md5sum
0fe2eeabc5125d669ff7754981af20ab  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v2.0.2/ember.min.js --location | sha1sum
6a6cf3347d8bd86ba412adada92e629f7a37a01e  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.0.2.min.zopfli.js.gz | sha1sum
6a6cf3347d8bd86ba412adada92e629f7a37a01e  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 136138 bytes 0fe2eeabc5125d669ff7754981af20ab September 7, 2015 @ 19:20
cdnjs 112186 bytes 0fe2eeabc5125d669ff7754981af20ab September 7, 2015 @ 15: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
106103 bytes -8 bytes zopfli --i100000 --mls64 --bsr30 --lazy --ohh September 30, 2015 @ 16:21
106111 bytes -6 bytes zopfli --i100000 --mls64 --bsr8 --lazy --ohh September 12, 2015 @ 19:17
106117 bytes -6 bytes zopfli --i10000 --mls64 --bsr8 --lazy --ohh September 11, 2015 @ 20:06
106123 bytes -2 bytes zopfli --i1000 --mls64 --bsr8 --lazy --ohh September 11, 2015 @ 17:40
106125 bytes -7 bytes zopfli --i1000 --mls64 --bsr14 --lazy --ohh September 11, 2015 @ 17:04
106132 bytes -4 bytes zopfli --i10000 --mls512 --bsr6 --lazy --ohh September 11, 2015 @ 05:48
106136 bytes -2 bytes zopfli --i10000 --mls1024 --bsr4 --lazy --ohh September 11, 2015 @ 03:30
106138 bytes -3 bytes zopfli --i10000 --mls512 --bsr10 --lazy --ohh September 11, 2015 @ 02:49
106141 bytes -4 bytes zopfli --i1000 --mls512 --bsr6 --lazy --ohh September 10, 2015 @ 14:13
106145 bytes -6 bytes zopfli --i1000 --mls1024 --bsr4 --lazy --ohh September 10, 2015 @ 14:11
106151 bytes -18 bytes zopfli --i1000 --mls512 --bsr13 --lazy --ohh September 10, 2015 @ 14:11
106169 bytes zopfli --i100 --mls512 --bsr6 --lazy --ohh September 10, 2015 @ 13:50

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

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
106219 106219 106276 106275 106276 106276 106277 106275 106276 106275 106277 106276 106298 106270 106268
106144 106191 106163 106163 106139 106139 106141 106138 106137 106136 106176 106263 106261 106151 106267
106150 106154 106171 106184 106134 106137 106163 106140 106132 106137 106166 106171 106165 106133 106143
106134 106167 106178 106185 106134 106145 106129 106130 106133 106180 106136 106177 106174 106126 106157
106144 106145 106157 106170 106146 106111 106185 106126 106152 106185 106271 106145 106275 106263 106269
106169 106180 106172 106159 106123 106134 106176 106129 106172 106160 106143 106274 106260 106261 106261
106140 106137 106144 106132 106136 106134 106166 106149 106138 106157 106140 106180 106260 106262 106260
106142 106152 106110 106201 106121 106142 106132 106160 106181 106155 106168 106144 106258 106262 106261
106149 106153 106130 106128 106142 106145 106166 106144 106140 106155 106137 106166 106262 106260 106256
106167 106145 106191 106158 106179 106136 106131 106131 106145 106183 106143 106166 106262 106261 106261
106136 106141 106150 106154 106141 106117 106166 106141 106148 106181 106138 106167 106261 106264 106256
106173 106135 106149 106207 106134 106127 106131 106171 106179 106177 106167 106169 106258 106260 106262
106175 106138 106172 106183 106186 106131 106165 106149 106143 106153 106147 106166 106262 106260 106262
106173 106172 106155 106145 106151 106118 106166 106142 106174 106156 106158 106180 106139 106260 106255
106172 106174 106148 106146 106140 106109 106134 106133 106146 106186 106142 106149 106261 106260 106262
106163 106147 106128 106140 106147 106122 106150 106151 106189 106146 106145 106262 106259 106262 106262
106160 106146 106147 106155 106147 106127 106127 106152 106148 106184 106145 106171 106260 106262 106257
106144 106136 106147 106144 106148 106121 106141 106148 106148 106183 106145 106157 106259 106261 106257
106139 106144 106147 106230 106139 106121 106146 106143 106179 106182 106138 106155 106149 106263 106256
106175 106138 106135 106200 106146 106146 106141 106158 106131 106182 106166 106168 106260 106262 106256
106175 106149 106147 106182 106145 106138 106166 106145 106171 106183 106275 106143 106258 106262 106261
106169 106143 106148 106150 106148 106103 106140 106145 106130 106181 106169 106146 106261 106261 106257
106160 106165 106148 106240 106139 106125 106166 106152 106133 106184 106154 106163 106257 106261 106261

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 106150 bytes 100%
1,000 106120 bytes -30 bytes 100%
10,000 106111 bytes -9 bytes 100%
100,000 106103 bytes -8 bytes 1.16%
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
106139 bytes +36 bytes (+0.03%) +6 bytes
106275 bytes +172 bytes (+0.16%) +142 bytes
106279 bytes +176 bytes (+0.17%) +146 bytes
106248 bytes +145 bytes (+0.14%) +115 bytes
106167 bytes +64 bytes (+0.06%) +34 bytes
106133 bytes +30 bytes (+0.03%)
106192 bytes +89 bytes (+0.08%) +59 bytes
106237 bytes +134 bytes (+0.13%) +104 bytes
106271 bytes +168 bytes (+0.16%) +138 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 72893 bytes -33210 bytes (-31.30%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 77984 bytes -28119 bytes (-26.50%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 83703 bytes -22400 bytes (-21.11%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 88776 bytes -17327 bytes (-16.33%)
Brotli (Wikipedia) brotli brotli -q 11 92434 bytes -13669 bytes (-12.88%)
LZMA2 (Wikipedia) xz xz -9 94580 bytes -11523 bytes (-10.86%)
Zstandard (Wikipedia) zstd zstd -19 97273 bytes -8830 bytes (-8.32%)

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.