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

After GZIP compression these minified files vary in size:
Boot
  156039 bytes (152.4k)
CDN
cdnjs
  128374 bytes (125.4k)
CDN
gzip -6 (default)
  125663 bytes (122.7k)
local copy
gzip -9
  125189 bytes (122.3k)
local copy
7zip -mx=9 -tgzip
  121154 bytes (118.3k)
local copy
zultra
  121033 bytes (118.2k)
local copy
libdeflate -12
  120981 bytes (118.1k)
local copy
pigz -11 -n
  120833 bytes (118.0k)
local copy
kzip -s0 -rn -b5
  120641 bytes (117.8k)
local copy
Zopfli
  120591 bytes (117.8k)
local copy
Zopfli (defluff)
  120588 bytes (117.8k)
local copy

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

You will automatically get the smallest Ember 1.13.4 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 7783 bytes by using my Ember 1.13.4 Zopfli version instead of the best available CDN (6.45% smaller than cdnjs, 120591 vs. 128374 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 --mls4 --bsr15 --lazy --ohh

(found March 28, 2017)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 4  --mls4
block splitting recursion 15  --bsr15
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 (120588 bytes).

Verify file integrity

After decompression, my uncompressed files are identical to the original ones:

MD5:
curl --silent --compressed https://builds.emberjs.com/tags/v1.13.4/ember.min.js --location | md5sum
8778404732020ef8fe64ec54befa2cc8  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-1.13.4.min.zopfli.js.gz | md5sum
8778404732020ef8fe64ec54befa2cc8  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v1.13.4/ember.min.js --location | sha1sum
4d94d8cd72f130236cb2fa303f2fec0e1824d383  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-1.13.4.min.zopfli.js.gz | sha1sum
4d94d8cd72f130236cb2fa303f2fec0e1824d383  -

CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Boot 156039 bytes e9a68510cab85e3f5ee53f2114acd81c < !function(){var e,t,r,n,i,a=this;!function(){function a(e, [...]
< }),e("dom-helper/prop",["exports"],function(e){function t( [...]
< e[l]=!0,s.template.yieldItem(l,[t,n],a)})}():s.inverse["yi [...]
< function a(e,t,r,n){this.init(n),this.helper=e,this.params [...]
< },l.prototype.willRemoveElement=function(){},l.prototype.w [...]
< i=arguments[1]);for(var o=i.length;o>a;a++)n[i[a]]=t.get(e [...]
< t&&a.set(t,this.key,e)},setSource:function(e){this.sourceD [...]
< }),e("ember-routing/initializers/routing-service",["export [...]
< });return i&&C(r.router,"application_error")?void n.interm [...]
< function m(e,t,r,i,a){var o=r&&r.willChange||"arrayWillCha [...]
[...]
July 21, 2015 @ 19:41
cdnjs 128374 bytes e9a68510cab85e3f5ee53f2114acd81c < !function(){var e,t,r,n,i,a=this;!function(){function a(e, [...]
< }),e("dom-helper/prop",["exports"],function(e){function t( [...]
< e[l]=!0,s.template.yieldItem(l,[t,n],a)})}():s.inverse["yi [...]
< function a(e,t,r,n){this.init(n),this.helper=e,this.params [...]
< },l.prototype.willRemoveElement=function(){},l.prototype.w [...]
< i=arguments[1]);for(var o=i.length;o>a;a++)n[i[a]]=t.get(e [...]
< t&&a.set(t,this.key,e)},setSource:function(e){this.sourceD [...]
< }),e("ember-routing/initializers/routing-service",["export [...]
< });return i&&C(r.router,"application_error")?void n.interm [...]
< function m(e,t,r,i,a){var o=r&&r.willChange||"arrayWillCha [...]
[...]
July 14, 2015 @ 09:03

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
120591 bytes -7 bytes zopfli --i100000 --mls4 --bsr15 --lazy --ohh March 28, 2017 @ 15:41
120598 bytes -6 bytes zopfli --i100000 --mls16 --bsr19 --lazy --ohh July 21, 2016 @ 16:46
120604 bytes -4 bytes zopfli --i10000 --mls16 --bsr19 --lazy --ohh October 6, 2015 @ 07:10
120608 bytes -9 bytes zopfli --i10000 --mls8 --bsr15 --lazy --ohh October 6, 2015 @ 06:31
120617 bytes -2 bytes zopfli --i1000 --mls8 --bsr15 --lazy --ohh October 6, 2015 @ 03:13
120619 bytes -1 byte zopfli --i1000 --mls16 --bsr19 --lazy --ohh October 6, 2015 @ 03:10
120620 bytes -1 byte zopfli --i1000 --mls256 --bsr7 --lazy --ohh October 6, 2015 @ 03:07
120621 bytes -2 bytes zopfli --i1000 --mls16 --bsr10 --lazy --ohh October 6, 2015 @ 03:01
120623 bytes -13 bytes zopfli --i1000 --mls8 --bsr13 --lazy --ohh October 6, 2015 @ 02:53
120636 bytes zopfli --i100 --mls16 --bsr19 --lazy --ohh October 5, 2015 @ 11:42

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
120766 120762 120762 120765 120763 120762 120763 120765 120762 120771 120767 120809 120810 120812 120804
120653 120672 120624 120660 120657 120743 120635 120627 120637 120626 120655 120809 120810 120643 120761
120617 120640 120632 120631 120638 120608 120607 120610 120612 120662 120624 120755 120810 120615 120629
120660 120657 120667 120634 120656 120611 120609 120609 120614 120642 120764 120654 120623 120619 120670
120669 120659 120634 120628 120750 120746 120748 120747 120747 120739 120647 120634 120638 120753 120639
120613 120613 120719 120618 120743 120743 120741 120742 120740 120739 120752 120756 120764 120760 120757
120620 120611 120717 120607 120743 120743 120743 120735 120743 120740 120740 120739 120751 120760 120751
120712 120652 120662 120625 120744 120743 120743 120739 120751 120740 120739 120739 120747 120757 120751
120611 120610 120598 120607 120741 120745 120741 120735 120748 120740 120739 120746 120748 120752 120755
120666 120642 120607 120648 120743 120742 120742 120739 120749 120739 120740 120739 120746 120745 120758
120635 120627 120626 120632 120743 120742 120743 120735 120741 120740 120739 120744 120743 120743 120755
120657 120591 120608 120629 120741 120743 120743 120746 120743 120742 120740 120739 120752 120752 120755
120655 120670 120650 120630 120743 120742 120742 120744 120743 120743 120739 120745 120741 120758 120757
120655 120662 120628 120626 120743 120745 120741 120735 120740 120740 120740 120739 120747 120754 120750
120667 120605 120744 120629 120743 120743 120743 120739 120751 120752 120736 120739 120746 120760 120752
120636 120615 120717 120598 120745 120745 120743 120739 120748 120736 120740 120737 120750 120757 120756
120669 120657 120629 120629 120744 120744 120743 120739 120739 120745 120740 120739 120747 120743 120753
120654 120658 120627 120636 120749 120745 120741 120735 120748 120740 120744 120744 120748 120752 120753
120654 120658 120632 120630 120743 120743 120743 120739 120747 120740 120739 120748 120752 120745 120757
120668 120613 120657 120630 120743 120742 120743 120735 120743 120746 120740 120747 120751 120745 120754
120654 120663 120648 120627 120741 120742 120743 120752 120751 120740 120740 120746 120746 120745 120750
120655 120664 120650 120637 120744 120745 120743 120751 120748 120739 120739 120739 120747 120765 120758
120669 120658 120657 120629 120743 120743 120746 120739 120749 120739 120743 120739 120747 120769 120757

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 120636 bytes 100%
1,000 120617 bytes -19 bytes 100%
10,000 120604 bytes -13 bytes 100%
100,000 120591 bytes -13 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
120653 bytes +62 bytes (+0.05%) +12 bytes
120774 bytes +183 bytes (+0.15%) +133 bytes
120779 bytes +188 bytes (+0.16%) +138 bytes
120741 bytes +150 bytes (+0.12%) +100 bytes
120665 bytes +74 bytes (+0.06%) +24 bytes
120641 bytes +50 bytes (+0.04%)
120693 bytes +102 bytes (+0.08%) +52 bytes
120729 bytes +138 bytes (+0.11%) +88 bytes
120794 bytes +203 bytes (+0.17%) +153 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 82157 bytes -38434 bytes (-31.87%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 88392 bytes -32199 bytes (-26.70%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 95490 bytes -25101 bytes (-20.81%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 100344 bytes -20247 bytes (-16.79%)
Brotli (Wikipedia) brotli brotli -q 11 104988 bytes -15603 bytes (-12.94%)
LZMA2 (Wikipedia) xz xz -9 107116 bytes -13475 bytes (-11.17%)
Zstandard (Wikipedia) zstd zstd -19 110125 bytes -10466 bytes (-8.68%)

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.