Choose a version:
14% The original file has 1148518 bytes (1,121.6k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 157919 bytes (154.2k, 14%).

After GZIP compression these minified files vary in size:
Boot
  64124 bytes (62.6k)
CDN
cdnjs
  56013 bytes (54.7k)
CDN
gzip -6 (default)
  55642 bytes (54.3k)
local copy
unpkg
  55640 bytes (54.3k)
CDN
Google
  55591 bytes (54.3k)
CDN
gzip -9
  55549 bytes (54.2k)
local copy
jsdelivr
  55549 bytes (54.2k)
CDN
libdeflate -12
  53818 bytes (52.6k)
local copy
7zip -mx=9 -tgzip
  53813 bytes (52.6k)
local copy
zultra
  53762 bytes (52.5k)
local copy
kzip -s0 -rn -b8
  53741 bytes (52.5k)
local copy
pigz -11 -n
  53722 bytes (52.5k)
local copy
Zopfli
  53667 bytes (52.4k)
local copy
Zopfli (defluff)
  53666 bytes (52.4k)
local copy

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

You will automatically get the smallest AngularJS 1.5.5 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 1882 bytes by using my AngularJS 1.5.5 Zopfli version instead of the best available CDN (3.51% smaller than jsdelivr, 53667 vs. 55549 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 --mls256 --bsr40 --lazy --ohh

(found April 19, 2016)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 256  --mls256
block splitting recursion 40  --bsr40
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 (53666 bytes).

Verify file integrity

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

MD5:
curl --silent --compressed https://code.angularjs.org/1.5.5/angular.min.js --location | md5sum
5e2d2057d96976d43c756dcc1efaa1dc  -
curl --silent --compressed https://minime.stephan-brumme.com/files/angularjs/angular-1.5.5.min.zopfli.js.gz | md5sum
5e2d2057d96976d43c756dcc1efaa1dc  -

SHA1:
curl --silent --compressed https://code.angularjs.org/1.5.5/angular.min.js --location | sha1sum
2099f7a8cf6f73ae42d8d7f2f4c60dcdbb4479cf  -
curl --silent --compressed https://minime.stephan-brumme.com/files/angularjs/angular-1.5.5.min.zopfli.js.gz | sha1sum
2099f7a8cf6f73ae42d8d7f2f4c60dcdbb4479cf  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 64124 bytes 5e2d2057d96976d43c756dcc1efaa1dc May 3, 2016 @ 10:39
cdnjs 56013 bytes 5e2d2057d96976d43c756dcc1efaa1dc April 19, 2016 @ 05:46
unpkg 55640 bytes 5e2d2057d96976d43c756dcc1efaa1dc July 11, 2016 @ 15:51
Google 55591 bytes 5e2d2057d96976d43c756dcc1efaa1dc April 18, 2016 @ 20:41
jsdelivr 55549 bytes 5e2d2057d96976d43c756dcc1efaa1dc May 8, 2016 @ 22:50

Note: only the MD5 hashes are shown to keep things simple.

Other Versions

Available AngularJS versions at minime.stephan-brumme.com:

1.8.2, 1.8.1, 1.8.0,
1.7.9, 1.7.8, 1.7.7, 1.7.6, 1.7.5, 1.7.4, 1.7.3, 1.7.2, 1.7.1, 1.7.0,
1.6.10, 1.6.9, 1.6.8, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0,
1.5.11, 1.5.10, 1.5.9, 1.5.8, 1.5.7, 1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0,
1.4.14, 1.4.13, 1.4.12, 1.4.11, 1.4.10, 1.4.9, 1.4.8, 1.4.7, 1.4.6, 1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0,
1.3.20, 1.3.19, 1.3.18, 1.3.17, 1.3.16, 1.3.15, 1.3.14, 1.3.13, 1.3.12, 1.3.11, 1.3.10, 1.3.9, 1.3.8, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0,
1.2.32, 1.2.31, 1.2.30, 1.2.29, 1.2.28, 1.2.27, 1.2.26, 1.2.25, 1.2.24, 1.2.23, 1.2.22, 1.2.21, 1.2.20, 1.2.19, 1.2.18, 1.2.17, 1.2.16, 1.2.15, 1.2.14, 1.2.13, 1.2.12, 1.2.11, 1.2.10, 1.2.9, 1.2.8, 1.2.7, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0,
1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0,
1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0,
0.10.6, 0.10.5, 0.10.4, 0.10.3, 0.10.2, 0.10.1, 0.10.0,
0.9.19, 0.9.18, 0.9.17, 0.9.16, 0.9.15, 0.9.14, 0.9.13, 0.9.12, 0.9.11, 0.9.10, 0.9.9, 0.9.8, 0.9.7, 0.9.6, 0.9.5, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0

The project site contains an overview how well these versions were compressed.
Other interesting projects are BackboneJS, Bootstrap, D3, Dojo, Ember, jQuery, Knockout, lodash, React, Socket.IO, ThreeJS, UnderscoreJS and Vue.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
53667 bytes -3 bytes zopfli --i1000000 --mls256 --bsr40 --lazy --ohh April 19, 2016 @ 15:02
53670 bytes -2 bytes zopfli --i100000 --mls256 --bsr40 --lazy --ohh April 18, 2016 @ 17:55
53672 bytes -2 bytes zopfli --i100000 --mls256 --bsr30 --lazy --ohh April 18, 2016 @ 14:48
53674 bytes -7 bytes zopfli --i10000 --mls256 --bsr30 --lazy --ohh April 18, 2016 @ 13:58
53681 bytes -1 byte zopfli --i10000 --mls256 --bsr7 --lazy --ohh April 18, 2016 @ 13:53
53682 bytes -4 bytes zopfli --i1000 --mls256 --bsr30 --lazy --ohh April 18, 2016 @ 13:49
53686 bytes -2 bytes zopfli --i1000 --mls256 --bsr7 --lazy --ohh April 18, 2016 @ 13:48
53688 bytes -5 bytes zopfli --i1000 --mls64 --bsr20 --lazy --ohh April 18, 2016 @ 13:48
53693 bytes zopfli --i100 --mls256 --bsr7 --lazy --ohh April 18, 2016 @ 13:43

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

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
53733 53722 53722 53725 53723 53723 53723 53723 53723 53725 53724 53726 53724 53720 53719
53704 53701 53720 53700 53703 53703 53686 53707 53705 53695 53705 53713 53710 53709 53701
53695 53703 53701 53693 53698 53690 53687 53696 53694 53700 53694 53713 53708 53709 53702
53692 53713 53714 53711 53707 53702 53689 53681 53688 53702 53694 53716 53707 53712 53701
53695 53705 53694 53700 53697 53700 53692 53692 53695 53686 53680 53710 53698 53701 53701
53697 53698 53692 53695 53697 53692 53706 53708 53690 53702 53703 53698 53708 53700 53702
53698 53697 53703 53696 53705 53692 53689 53688 53690 53693 53693 53698 53708 53702 53695
53698 53699 53715 53699 53706 53698 53709 53690 53690 53693 53692 53699 53707 53700 53701
53699 53696 53700 53697 53697 53691 53692 53691 53690 53704 53693 53698 53707 53701 53701
53697 53696 53701 53697 53691 53690 53692 53688 53690 53700 53685 53709 53708 53701 53702
53690 53697 53692 53693 53693 53692 53693 53687 53689 53701 53696 53698 53708 53697 53700
53692 53715 53715 53692 53713 53684 53689 53686 53692 53692 53685 53699 53708 53701 53701
53691 53697 53689 53690 53692 53691 53687 53688 53689 53701 53695 53706 53708 53700 53694
53690 53696 53694 53697 53691 53689 53689 53692 53689 53692 53692 53710 53707 53703 53700
53697 53696 53692 53693 53697 53692 53692 53688 53690 53701 53703 53707 53708 53704 53700
53690 53694 53694 53690 53692 53692 53689 53685 53690 53704 53696 53709 53708 53703 53699
53696 53697 53692 53692 53691 53683 53689 53683 53689 53692 53696 53699 53707 53701 53701
53690 53696 53689 53689 53692 53691 53687 53692 53690 53700 53693 53709 53707 53699 53701
53692 53696 53692 53697 53692 53691 53689 53683 53689 53702 53695 53708 53708 53701 53701
53695 53699 53693 53694 53691 53694 53688 53684 53690 53693 53692 53704 53708 53698 53702
53685 53698 53695 53691 53691 53698 53692 53688 53690 53702 53696 53706 53706 53712 53694
53684 53692 53685 53684 53687 53687 53684 53672 53683 53694 53693 53697 53707 53700 53699
53689 53691 53687 53686 53687 53673 53684 53667 53684 53702 53696 53697 53708 53701 53699

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 53693 bytes 100%
1,000 53682 bytes -11 bytes 100%
10,000 53674 bytes -8 bytes 100%
100,000 53670 bytes -4 bytes 0.87%
1,000,000 53667 bytes -3 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
53797 bytes +130 bytes (+0.24%) +56 bytes
53797 bytes +130 bytes (+0.24%) +56 bytes
53808 bytes +141 bytes (+0.26%) +67 bytes
53811 bytes +144 bytes (+0.27%) +70 bytes
53809 bytes +142 bytes (+0.26%) +68 bytes
53830 bytes +163 bytes (+0.30%) +89 bytes
53838 bytes +171 bytes (+0.32%) +97 bytes
53779 bytes +112 bytes (+0.21%) +38 bytes
53741 bytes +74 bytes (+0.14%)

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 41587 bytes -12080 bytes (-22.51%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 43913 bytes -9754 bytes (-18.18%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 45364 bytes -8303 bytes (-15.47%)
Brotli (Wikipedia) brotli brotli -q 11 48823 bytes -4844 bytes (-9.03%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 49524 bytes -4143 bytes (-7.72%)
LZMA2 (Wikipedia) xz xz -9 50300 bytes -3367 bytes (-6.27%)
Zstandard (Wikipedia) zstd zstd -19 51759 bytes -1908 bytes (-3.56%)

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.