Choose a version:
13% The original file has 1335458 bytes (1,304.2k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 172105 bytes (168.1k, 13%).

After GZIP compression these minified files vary in size:
Boot
  60407 bytes (59.0k)
CDN
cdnjs
  60407 bytes (59.0k)
CDN
Google
  60234 bytes (58.8k)
CDN
gzip -6 (default)
  59944 bytes (58.5k)
local copy
unpkg
  59934 bytes (58.5k)
CDN
gzip -9
  59788 bytes (58.4k)
local copy
kzip -s0 -rn -b0
  57965 bytes (56.6k)
local copy
7zip -mx=9 -tgzip
  57942 bytes (56.6k)
local copy
libdeflate -12
  57938 bytes (56.6k)
local copy
zultra
  57899 bytes (56.5k)
local copy
pigz -11 -n
  57869 bytes (56.5k)
local copy
Zopfli
  57813 bytes (56.5k)
local copy
Zopfli (defluff)
  57809 bytes (56.5k)
local copy

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

You will automatically get the smallest AngularJS 1.7.2 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 2121 bytes by using my AngularJS 1.7.2 Zopfli version instead of the best available CDN (3.67% smaller than unpkg, 57813 vs. 59934 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 --mls512 --bsr20 --lazy --ohh

(found June 15, 2018)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 512  --mls512
block splitting recursion 20  --bsr20
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 (57809 bytes).

Verify file integrity

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

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

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 60407 bytes ad73328e890d5448958348bb328caeec June 26, 2018 @ 12:15
cdnjs 60407 bytes ad73328e890d5448958348bb328caeec June 26, 2018 @ 12:15
Google 60234 bytes ad73328e890d5448958348bb328caeec June 16, 2018 @ 20:15
unpkg 59934 bytes ad73328e890d5448958348bb328caeec (invalid)

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
57813 bytes -3 bytes zopfli --i1000000 --mls512 --bsr20 --lazy --ohh June 15, 2018 @ 13:24
57816 bytes -5 bytes zopfli --i100000 --mls512 --bsr20 --lazy --ohh June 14, 2018 @ 17:28
57821 bytes -1 byte zopfli --i10000 --mls512 --bsr20 --lazy --ohh June 14, 2018 @ 15:13
57822 bytes -1 byte zopfli --i10000 --mls256 --bsr22 --lazy --ohh June 14, 2018 @ 14:57
57823 bytes -5 bytes zopfli --i10000 --mls128 --bsr10 --lazy --ohh June 14, 2018 @ 14:50
57828 bytes -1 byte zopfli --i1000 --mls128 --bsr10 --lazy --ohh June 14, 2018 @ 13:53
57829 bytes -3 bytes zopfli --i1000 --mls512 --bsr21 --lazy --ohh June 14, 2018 @ 13:53
57832 bytes zopfli --i100 --mls512 --bsr23 --lazy --ohh June 14, 2018 @ 13: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:53.

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
57879 57882 57880 57883 57882 57879 57874 57872 57877 57877 57856 57861 57860 57855 57893
57870 57870 57861 57857 57856 57859 57851 57842 57851 57853 57839 57853 57849 57849 57858
57877 57879 57870 57856 57861 57857 57855 57841 57840 57851 57852 57853 57853 57841 57870
57854 57856 57879 57863 57853 57854 57840 57843 57853 57838 57843 57851 57848 57850 57854
57856 57857 57861 57854 57866 57854 57839 57840 57845 57858 57854 57846 57848 57846 57857
57863 57889 57875 57856 57860 57856 57848 57854 57825 57849 57840 57852 57861 57848 57867
57856 57854 57842 57877 57838 57835 57823 57838 57825 57836 57836 57836 57834 57845 57860
57847 57844 57842 57840 57838 57835 57823 57819 57827 57838 57841 57835 57850 57832 57842
57847 57843 57874 57869 57838 57859 57824 57835 57826 57836 57836 57844 57861 57854 57867
57844 57844 57853 57848 57844 57840 57825 57827 57824 57854 57828 57836 57835 57824 57853
57844 57844 57846 57836 57834 57837 57826 57840 57828 57849 57828 57838 57834 57827 57837
57843 57840 57873 57841 57834 57835 57825 57824 57823 57826 57826 57835 57832 57831 57842
57840 57842 57844 57839 57833 57841 57823 57823 57823 57837 57834 57835 57843 57830 57858
57843 57847 57853 57850 57847 57836 57838 57826 57825 57836 57837 57837 57832 57825 57853
57839 57842 57856 57843 57834 57837 57823 57823 57831 57835 57844 57834 57833 57844 57853
57843 57841 57840 57839 57837 57838 57824 57827 57824 57845 57836 57837 57825 57853 57843
57863 57858 57867 57868 57849 57853 57824 57820 57813 57824 57841 57836 57835 57849 57869
57842 57842 57853 57851 57837 57840 57824 57842 57824 57835 57826 57842 57831 57827 57859
57842 57840 57841 57841 57835 57842 57837 57820 57823 57826 57835 57836 57831 57847 57858
57855 57853 57840 57839 57840 57836 57824 57838 57823 57838 57839 57853 57835 57846 57841
57842 57844 57842 57838 57838 57840 57833 57832 57837 57837 57827 57835 57836 57828 57852
57847 57842 57847 57839 57853 57843 57824 57826 57830 57837 57843 57840 57832 57823 57844
57863 57853 57858 57840 57848 57838 57828 57826 57825 57837 57840 57840 57833 57826 57858

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 57832 bytes 100%
1,000 57828 bytes -4 bytes 100%
10,000 57821 bytes -7 bytes 100%
100,000 57816 bytes -5 bytes 1.16%
1,000,000 57813 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
57965 bytes +152 bytes (+0.26%)
57965 bytes +152 bytes (+0.26%)
57972 bytes +159 bytes (+0.28%) +7 bytes
57980 bytes +167 bytes (+0.29%) +15 bytes
57987 bytes +174 bytes (+0.30%) +22 bytes
57999 bytes +186 bytes (+0.32%) +34 bytes
57972 bytes +159 bytes (+0.28%) +7 bytes
58029 bytes +216 bytes (+0.37%) +64 bytes
58031 bytes +218 bytes (+0.38%) +66 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 44619 bytes -13194 bytes (-22.82%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 47160 bytes -10653 bytes (-18.43%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 48970 bytes -8843 bytes (-15.30%)
Brotli (Wikipedia) brotli brotli -q 11 52470 bytes -5343 bytes (-9.24%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 53161 bytes -4652 bytes (-8.05%)
LZMA2 (Wikipedia) xz xz -9 54040 bytes -3773 bytes (-6.53%)
Zstandard (Wikipedia) zstd zstd -19 55638 bytes -2175 bytes (-3.76%)

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.