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

After GZIP compression these minified files vary in size:
Boot
  138434 bytes (135.2k)
CDN
gzip -6 (default)
  112379 bytes (109.7k)
local copy
gzip -9
  112002 bytes (109.4k)
local copy
cdnjs
  111834 bytes (109.2k)
CDN
zultra
  108231 bytes (105.7k)
local copy
7zip -mx=9 -tgzip
  108225 bytes (105.7k)
local copy
libdeflate -12
  108187 bytes (105.7k)
local copy
pigz -11 -n
  108047 bytes (105.5k)
local copy
kzip -s0 -rn -b0
  107832 bytes (105.3k)
local copy
Zopfli
  107806 bytes (105.3k)
local copy
Zopfli (defluff)
  107803 bytes (105.3k)
local copy

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

You will automatically get the smallest Ember 2.1.1 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 4028 bytes by using my Ember 2.1.1 Zopfli version instead of the best available CDN (3.74% smaller than cdnjs, 107806 vs. 111834 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 --bsr17 --lazy --ohh

(found January 19, 2016)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 64  --mls64
block splitting recursion 17  --bsr17
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 (107803 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.1.1/ember.min.js --location | md5sum
e40bdd17e1317f7baf5d5b5da7d24795  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.1.1.min.zopfli.js.gz | md5sum
e40bdd17e1317f7baf5d5b5da7d24795  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 138434 bytes e40bdd17e1317f7baf5d5b5da7d24795 December 1, 2015 @ 19:39
cdnjs 111834 bytes e40bdd17e1317f7baf5d5b5da7d24795 November 18, 2015 @ 03:35

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
107806 bytes -5 bytes zopfli --i100000 --mls64 --bsr17 --lazy --ohh January 19, 2016 @ 23:05
107811 bytes -3 bytes zopfli --i100000 --mls2 --bsr40 --lazy --ohh January 19, 2016 @ 14:42
107814 bytes -3 bytes zopfli --i100000 --mls64 --bsr10 --lazy --ohh January 18, 2016 @ 12:59
107817 bytes -1 byte zopfli --i10000 --mls2 --bsr40 --lazy --ohh January 18, 2016 @ 10:01
107818 bytes -2 bytes zopfli --i10000 --mls2 --bsr18 --lazy --ohh January 18, 2016 @ 07:35
107820 bytes -4 bytes zopfli --i10000 --mls2 --bsr13 --lazy --ohh January 18, 2016 @ 06:50
107824 bytes -1 byte zopfli --i10000 --mls2 --bsr7 --lazy --ohh January 18, 2016 @ 05:30
107825 bytes -2 bytes zopfli --i1000 --mls2 --bsr40 --lazy --ohh January 17, 2016 @ 21:48
107827 bytes -46 bytes zopfli --i1000 --mls64 --bsr14 --lazy --ohh January 17, 2016 @ 21:23
107873 bytes zopfli --i100 --mls64 --bsr14 --lazy --ohh January 17, 2016 @ 21:17

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 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
107960 107968 107990 107991 107998 107971 107989 107991 107998 107969 107970 107968 107976 107994 107993
107875 107872 107946 107948 107943 107950 107943 107948 107830 107840 107827 107837 107838 107994 107950
107832 107814 107828 107834 107832 107832 107835 107832 107832 107839 107850 107830 107902 107994 107993
107824 107948 107946 107945 107948 107820 107882 107833 107826 107946 107946 107830 107946 107949 107949
107816 107949 107948 107948 107946 107842 107947 107945 107948 107949 107946 107842 107951 107949 107948
107850 107948 107946 107944 107943 107844 107948 107944 107948 107949 107946 107821 107952 107947 107946
107824 107948 107945 107945 107946 107814 107947 107948 107948 107948 107946 107949 107947 107949 107949
107813 107948 107948 107947 107945 107852 107943 107948 107944 107946 108033 107844 107950 107949 107949
107813 107948 107946 107945 107948 107846 107951 107949 107947 107947 107946 107830 107946 107949 107945
107813 107948 107948 107948 107947 107849 107947 107948 107948 107947 107946 107947 107947 107949 107948
107823 107948 107948 107947 107946 107819 107943 107943 107947 107950 107946 107949 107952 107948 107948
107813 107948 107948 107945 107946 107844 107947 107945 107949 107946 107950 107830 107946 107949 107948
107823 107948 107948 107947 107947 107851 107948 107948 107947 107947 107946 107838 107946 107949 107949
107823 107941 107946 107944 107947 107806 107944 107949 107948 107946 107946 107845 107831 107949 107949
107814 107948 107943 107942 107943 107822 107949 107941 107944 107947 107948 107842 107951 107951 107949
107814 107948 107948 107947 107944 107854 107947 107945 107945 107947 107946 107948 107833 107949 107947
107822 107948 107946 107948 107945 107841 107947 107949 107948 107950 107946 107947 107946 107949 107947
107848 107948 107948 107948 107946 107837 107947 107948 107947 107947 107949 107830 107953 107949 107947
107822 107948 107945 107943 107947 107836 107945 107944 107949 107950 107949 107822 107829 107950 107946
107822 107948 107948 107945 107946 107854 107948 107947 107949 107946 107946 107829 107952 107950 107949
107825 107948 107945 107946 107946 107822 107942 107941 107949 107947 107946 107842 107947 107950 107946
107826 107948 107946 107942 107943 107850 107945 107943 107948 107950 107950 107822 107946 107949 107947
107811 107948 107946 107948 107947 107845 107943 107943 107947 107947 107949 107823 107946 107952 107946

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 107873 bytes 100%
1,000 107825 bytes -48 bytes 100%
10,000 107817 bytes -8 bytes 100%
100,000 107806 bytes -11 bytes 3.48%
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
107832 bytes +26 bytes (+0.02%)
107962 bytes +156 bytes (+0.14%) +130 bytes
107968 bytes +162 bytes (+0.15%) +136 bytes
107938 bytes +132 bytes (+0.12%) +106 bytes
107871 bytes +65 bytes (+0.06%) +39 bytes
107844 bytes +38 bytes (+0.04%) +12 bytes
107891 bytes +85 bytes (+0.08%) +59 bytes
107913 bytes +107 bytes (+0.10%) +81 bytes
107980 bytes +174 bytes (+0.16%) +148 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 73880 bytes -33926 bytes (-31.47%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 79086 bytes -28720 bytes (-26.64%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 85006 bytes -22800 bytes (-21.15%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 89995 bytes -17811 bytes (-16.52%)
Brotli (Wikipedia) brotli brotli -q 11 93844 bytes -13962 bytes (-12.95%)
LZMA2 (Wikipedia) xz xz -9 96096 bytes -11710 bytes (-10.86%)
Zstandard (Wikipedia) zstd zstd -19 98769 bytes -9037 bytes (-8.38%)

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.