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

After GZIP compression these minified files vary in size:
Boot
  143228 bytes (139.9k)
CDN
jsdelivr
  143228 bytes (139.9k)
CDN
gzip -6 (default)
  115970 bytes (113.3k)
local copy
gzip -9
  115561 bytes (112.9k)
local copy
cdnjs
  115474 bytes (112.8k)
CDN
zultra
  111738 bytes (109.1k)
local copy
7zip -mx=9 -tgzip
  111735 bytes (109.1k)
local copy
libdeflate -12
  111735 bytes (109.1k)
local copy
pigz -11 -n
  111542 bytes (108.9k)
local copy
kzip -s0 -rn -b7
  111488 bytes (108.9k)
local copy
Zopfli
  111340 bytes (108.7k)
local copy
Zopfli (defluff)
  111339 bytes (108.7k)
local copy

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

You will automatically get the smallest Ember 2.3.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 4134 bytes by using my Ember 2.3.0 Zopfli version instead of the best available CDN (3.71% smaller than cdnjs, 111340 vs. 115474 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 --mls32 --bsr10 --lazy --ohh

(found January 21, 2016)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 32  --mls32
block splitting recursion 10  --bsr10
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 1 more byte (111339 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.3.0/ember.min.js --location | md5sum
1c6b9b76e096f56014c3f7ca0c6d2514  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.3.0.min.zopfli.js.gz | md5sum
1c6b9b76e096f56014c3f7ca0c6d2514  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 143228 bytes 1c6b9b76e096f56014c3f7ca0c6d2514 January 18, 2016 @ 16:50
jsdelivr 143228 bytes 1c6b9b76e096f56014c3f7ca0c6d2514 January 18, 2016 @ 06:02
cdnjs 115474 bytes 1c6b9b76e096f56014c3f7ca0c6d2514 January 18, 2016 @ 07:02

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
111340 bytes -1 byte zopfli --i1000000 --mls32 --bsr10 --lazy --ohh January 21, 2016 @ 06:40
111341 bytes -1 byte zopfli --i100000 --mls32 --bsr10 --lazy --ohh January 19, 2016 @ 22:20
111342 bytes -7 bytes zopfli --i100000 --mls32 --bsr14 --lazy --ohh January 19, 2016 @ 16:46
111349 bytes -15 bytes zopfli --i10000 --mls32 --bsr10 --lazy --ohh January 19, 2016 @ 10:47
111364 bytes -6 bytes zopfli --i10000 --mls32 --bsr9 --lazy --ohh January 19, 2016 @ 10:10
111370 bytes -1 byte zopfli --i1000 --mls32 --bsr10 --lazy --ohh January 19, 2016 @ 09:38
111371 bytes -39 bytes zopfli --i1000 --mls32 --bsr15 --lazy --ohh January 19, 2016 @ 09:35
111410 bytes zopfli --i100 --mls32 --bsr15 --lazy --ohh January 19, 2016 @ 09:05

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

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
111449 111449 111451 111450 111449 111450 111447 111486 111484 111485 111481 111482 111538 111545 111545
111390 111390 111396 111392 111484 111406 111422 111424 111397 111389 111483 111484 111538 111372 111487
111398 111401 111402 111399 111392 111394 111409 111413 111490 111387 111412 111485 111538 111388 111388
111359 111371 111478 111485 111479 111483 111485 111483 111435 111492 111397 111387 111486 111487 111487
111373 111481 111480 111480 111481 111483 111486 111487 111391 111495 111400 111393 111483 111492 111486
111371 111358 111478 111485 111364 111483 111486 111479 111393 111495 111395 111482 111490 111487 111487
111359 111359 111482 111480 111340 111483 111488 111479 111393 111483 111397 111387 111483 111487 111487
111359 111358 111479 111485 111367 111484 111479 111480 111394 111483 111393 111390 111491 111491 111485
111485 111359 111478 111479 111486 111483 111485 111479 111397 111483 111390 111388 111485 111486 111486
111478 111373 111478 111480 111487 111483 111486 111480 111389 111483 111397 111387 111484 111487 111490
111360 111358 111484 111480 111342 111555 111486 111479 111491 111483 111396 111390 111489 111487 111487
111359 111387 111478 111485 111342 111483 111485 111481 111422 111495 111390 111388 111486 111487 111486
111357 111371 111478 111481 111369 111483 111486 111495 111499 111493 111407 111388 111487 111487 111487
111484 111485 111485 111485 111481 111484 111486 111486 111491 111483 111394 111404 111487 111487 111487
111361 111374 111488 111486 111357 111485 111480 111480 111388 111483 111390 111392 111485 111492 111487
111357 111357 111478 111487 111342 111488 111479 111488 111390 111484 111409 111392 111487 111487 111485
111360 111359 111478 111479 111343 111483 111479 111480 111490 111483 111391 111388 111487 111490 111487
111373 111372 111478 111479 111341 111483 111485 111486 111494 111494 111409 111392 111486 111487 111487
111484 111355 111479 111479 111348 111483 111486 111479 111387 111492 111483 111390 111479 111487 111487
111359 111485 111478 111481 111345 111484 111485 111479 111395 111490 111398 111397 111485 111487 111487
111360 111359 111478 111480 111340 111483 111485 111479 111400 111483 111394 111390 111485 111491 111487
111345 111356 111491 111480 111355 111483 111484 111485 111390 111483 111390 111387 111487 111486 111485
111358 111376 111480 111480 111365 111483 111486 111486 111388 111484 111397 111392 111491 111490 111485

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 111410 bytes 100%
1,000 111370 bytes -40 bytes 100%
10,000 111349 bytes -21 bytes 100%
100,000 111341 bytes -8 bytes 2.90%
1,000,000 111340 bytes -1 byte 0.87%
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
111548 bytes +208 bytes (+0.19%) +60 bytes
111523 bytes +183 bytes (+0.16%) +35 bytes
111550 bytes +210 bytes (+0.19%) +62 bytes
111598 bytes +258 bytes (+0.23%) +110 bytes
111620 bytes +280 bytes (+0.25%) +132 bytes
111566 bytes +226 bytes (+0.20%) +78 bytes
111531 bytes +191 bytes (+0.17%) +43 bytes
111488 bytes +148 bytes (+0.13%)
111540 bytes +200 bytes (+0.18%) +52 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 - for example, your browser actually supports it !
Algorithm Program Parameters Size Compared To Best Zopfli
ZPAQ (Wikipedia) zpaq zpaq -method 69 75827 bytes -35513 bytes (-31.90%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 81230 bytes -30110 bytes (-27.04%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 87391 bytes -23949 bytes (-21.51%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 92517 bytes -18823 bytes (-16.91%)
Brotli (Wikipedia) brotli brotli -q 11 96519 bytes -14821 bytes (-13.31%)
LZMA2 (Wikipedia) xz xz -9 98780 bytes -12560 bytes (-11.28%)
Zstandard (Wikipedia) zstd zstd -19 101580 bytes -9760 bytes (-8.77%)

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.