Choose a version:
31% The original file has 1582998 bytes (1,545.9k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 482868 bytes (471.6k, 31%).

After GZIP compression these minified files vary in size:
Boot
  151173 bytes (147.6k)
CDN
cdnjs
  124827 bytes (121.9k)
CDN
gzip -6 (default)
  123280 bytes (120.4k)
local copy
gzip -9
  122777 bytes (119.9k)
local copy
7zip -mx=9 -tgzip
  118525 bytes (115.7k)
local copy
zultra
  118507 bytes (115.7k)
local copy
libdeflate -12
  118505 bytes (115.7k)
local copy
pigz -11 -n
  118419 bytes (115.6k)
local copy
Zopfli
  118250 bytes (115.5k)
local copy
kzip -s0 -rn -b4
  118248 bytes (115.5k)
local copy
Zopfli (defluff)
  118246 bytes (115.5k)
local copy

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

You will automatically get the smallest Ember 2.14.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 6577 bytes by using my Ember 2.14.0 Zopfli version instead of the best available CDN (5.56% smaller than cdnjs, 118250 vs. 124827 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 --mls1024 --bsr7 --lazy --ohh

(found July 11, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 1024  --mls1024
block splitting recursion 7  --bsr7
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 (118246 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.14.0/ember.min.js --location | md5sum
81d18a19f3343f7dd2642284b91c767d  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.14.0.min.zopfli.js.gz | md5sum
81d18a19f3343f7dd2642284b91c767d  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 151173 bytes 81d18a19f3343f7dd2642284b91c767d July 9, 2017 @ 04:32
cdnjs 124827 bytes 81d18a19f3343f7dd2642284b91c767d July 5, 2017 @ 18:33

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
118250 bytes -2 bytes zopfli --i1000000 --mls1024 --bsr7 --lazy --ohh July 11, 2017 @ 05:33
118252 bytes -5 bytes zopfli --i100000 --mls1024 --bsr7 --lazy --ohh July 10, 2017 @ 09:39
118257 bytes -1 byte zopfli --i10000 --mls1024 --bsr7 --lazy --ohh July 8, 2017 @ 16:41
118258 bytes -1 byte zopfli --i10000 --mls2048 --bsr18 --lazy --ohh July 8, 2017 @ 13:25
118259 bytes -1 byte zopfli --i10000 --mls256 --bsr12 --lazy --ohh July 8, 2017 @ 13:04
118260 bytes -1 byte zopfli --i10000 --mls16 --bsr40 --lazy --ohh July 8, 2017 @ 03:41
118261 bytes -3 bytes zopfli --i10000 --mls2048 --bsr10 --lazy --ohh July 8, 2017 @ 01:36
118264 bytes -9 bytes zopfli --i1000 --mls16 --bsr40 --lazy --ohh July 7, 2017 @ 21:11
118273 bytes -24 bytes zopfli --i1000 --mls128 --bsr25 --lazy --ohh July 7, 2017 @ 18:59
118297 bytes zopfli --i100 --mls32768 --bsr8 --lazy --ohh July 7, 2017 @ 17:37

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
118288 118287 118287 118287 118283 118282 118281 118280 118279 118273 118289 118263 118343 118355 118291
118277 118276 118278 118277 118279 118277 118277 118278 118278 118262 118292 118266 118302 118273 118274
118277 118302 118277 118306 118277 118278 118278 118266 118264 118271 118278 118272 118272 118265 118267
118279 118275 118274 118278 118277 118274 118272 118261 118262 118250 118292 118269 118268 118270 118297
118280 118278 118279 118277 118274 118275 118276 118262 118265 118260 118292 118272 118265 118355 118263
118275 118277 118272 118278 118277 118277 118266 118262 118262 118261 118280 118264 118272 118268 118273
118278 118279 118275 118279 118274 118279 118271 118267 118264 118263 118261 118265 118275 118267 118267
118275 118282 118275 118278 118277 118277 118275 118262 118259 118261 118260 118263 118266 118270 118271
118280 118278 118278 118281 118277 118281 118283 118259 118264 118260 118280 118276 118270 118270 118270
118267 118267 118260 118260 118261 118262 118266 118259 118271 118255 118254 118268 118273 118266 118271
118272 118267 118272 118274 118261 118262 118275 118281 118269 118268 118262 118269 118278 118268 118272
118274 118275 118273 118277 118261 118275 118275 118283 118260 118288 118280 118269 118272 118270 118272
118266 118267 118272 118274 118267 118267 118272 118280 118273 118268 118268 118269 118278 118269 118279
118272 118273 118271 118277 118262 118271 118275 118275 118274 118268 118280 118269 118276 118269 118272
118274 118272 118267 118260 118262 118268 118268 118269 118274 118262 118255 118266 118271 118268 118280
118267 118275 118266 118274 118268 118267 118266 118263 118263 118264 118259 118268 118273 118270 118272
118267 118266 118274 118268 118269 118268 118266 118268 118268 118268 118269 118270 118274 118270 118271
118266 118268 118267 118277 118266 118266 118255 118260 118262 118268 118268 118269 118273 118267 118271
118272 118268 118273 118277 118262 118262 118266 118281 118267 118268 118260 118270 118272 118266 118270
118269 118272 118273 118276 118269 118276 118276 118278 118259 118268 118260 118268 118276 118269 118270
118272 118267 118267 118277 118261 118260 118267 118281 118265 118268 118277 118270 118272 118271 118272
118277 118267 118272 118272 118261 118260 118272 118271 118274 118267 118277 118269 118274 118269 118269
118271 118268 118271 118260 118261 118261 118275 118271 118269 118268 118265 118269 118273 118267 118275

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 118297 bytes 100%
1,000 118264 bytes -33 bytes 100%
10,000 118257 bytes -7 bytes 100%
100,000 118252 bytes -5 bytes 1.45%
1,000,000 118250 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
118324 bytes +74 bytes (+0.06%) +76 bytes
118359 bytes +109 bytes (+0.09%) +111 bytes
118327 bytes +77 bytes (+0.07%) +79 bytes
118308 bytes +58 bytes (+0.05%) +60 bytes
118248 bytes -2 bytes (0.00%)
118304 bytes +54 bytes (+0.05%) +56 bytes
118350 bytes +100 bytes (+0.08%) +102 bytes
118348 bytes +98 bytes (+0.08%) +100 bytes
118391 bytes +141 bytes (+0.12%) +143 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 81301 bytes -36949 bytes (-31.25%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 88045 bytes -30205 bytes (-25.54%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 95037 bytes -23213 bytes (-19.63%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 101050 bytes -17200 bytes (-14.55%)
Brotli (Wikipedia) brotli brotli -q 11 103004 bytes -15246 bytes (-12.89%)
LZMA2 (Wikipedia) xz xz -9 104756 bytes -13494 bytes (-11.41%)
Zstandard (Wikipedia) zstd zstd -19 107826 bytes -10424 bytes (-8.82%)

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.