Choose a version:
13% The original file has 952033 bytes (929.7k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 125381 bytes (122.4k, 13%).

After GZIP compression these minified files vary in size:
Boot
  52833 bytes (51.6k)
CDN
Baidu
  46514 bytes (45.4k)
CDN
cdnjs
  46388 bytes (45.3k)
CDN
unpkg
  46071 bytes (45.0k)
CDN
gzip -6 (default)
  46044 bytes (45.0k)
local copy
Google
  45988 bytes (44.9k)
CDN
Yandex
  45960 bytes (44.9k)
CDN
gzip -9
  45960 bytes (44.9k)
local copy
7zip -mx=9 -tgzip
  44605 bytes (43.6k)
local copy
kzip -s0 -rn -b0
  44557 bytes (43.5k)
local copy
zultra
  44555 bytes (43.5k)
local copy
libdeflate -12
  44545 bytes (43.5k)
local copy
pigz -11 -n
  44499 bytes (43.5k)
local copy
Zopfli
  44462 bytes (43.4k)
local copy
Zopfli (defluff)
  44461 bytes (43.4k)
local copy

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

You will automatically get the smallest AngularJS 1.3.11 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 1498 bytes by using my AngularJS 1.3.11 Zopfli version instead of the best available CDN (3.37% smaller than Yandex, 44462 vs. 45960 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 --mls256 --bsr40 --lazy --ohh

(found February 17, 2016)
Description Value Parameter
iterations 100000  --i100000
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 (44461 bytes).

Verify file integrity

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

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

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

These CDNs send you the original file:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 52833 bytes ba3df8d1987e201d5666690b8e3278ae March 18, 2015 @ 10:58
cdnjs 46388 bytes ba3df8d1987e201d5666690b8e3278ae January 27, 2015 @ 06:30
unpkg 46071 bytes ba3df8d1987e201d5666690b8e3278ae July 11, 2016 @ 15:53
Google 45988 bytes ba3df8d1987e201d5666690b8e3278ae January 27, 2015 @ 00:45
Yandex 45960 bytes ba3df8d1987e201d5666690b8e3278ae June 11, 2015 @ 14:17

And some CDNs send you a different file:
CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Baidu 46514 bytes bf5974d40158adff7a639bbcb8d4db37 only whitespaces differ April 3, 2015 @ 04:57

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
44462 bytes -2 bytes zopfli --i100000 --mls256 --bsr40 --lazy --ohh February 17, 2016 @ 19:42
44464 bytes -3 bytes zopfli --i100000 --mls16384 --bsr22 --lazy --ohh November 30, 2015 @ 13:43
44467 bytes -6 bytes zopfli --i10000 --mls1024 --bsr6 --lazy --ohh September 9, 2015 @ 02:12
44473 bytes -1 byte zopfli --i1000 --mls1024 --bsr10 --lazy --ohh September 7, 2015 @ 18:43
44474 bytes -2 bytes zopfli --i1000 --mls1024 --bsr14 --lazy --ohh September 7, 2015 @ 18:43
44476 bytes zopfli --i100 --mls4096 --bsr12 --lazy --ohh September 7, 2015 @ 16:35

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

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
44495 44491 44491 44495 44481 44498 44495 44490 44484 44488 44487 44488 44484 44483 44488
44492 44491 44491 44495 44495 44485 44487 44487 44496 44496 44482 44478 44491 44469 44494
44473 44474 44494 44494 44470 44475 44476 44475 44474 44466 44470 44468 44470 44468 44489
44482 44473 44493 44472 44473 44473 44475 44471 44472 44473 44470 44468 44470 44473 44475
44495 44472 44485 44472 44471 44473 44477 44472 44472 44475 44475 44473 44470 44470 44488
44493 44494 44481 44493 44471 44473 44466 44467 44472 44479 44473 44472 44470 44473 44500
44501 44498 44489 44473 44471 44473 44476 44467 44476 44470 44470 44472 44470 44470 44473
44500 44486 44492 44472 44471 44473 44471 44489 44472 44468 44475 44468 44473 44468 44507
44493 44495 44483 44492 44494 44468 44474 44468 44473 44471 44473 44471 44470 44468 44488
44496 44500 44493 44473 44472 44472 44466 44468 44473 44471 44470 44471 44470 44471 44492
44497 44487 44493 44489 44471 44494 44468 44473 44486 44471 44473 44468 44470 44468 44500
44484 44489 44493 44472 44475 44472 44475 44467 44473 44471 44473 44471 44469 44468 44473
44489 44488 44493 44473 44472 44472 44467 44471 44472 44472 44469 44471 44469 44470 44502
44480 44490 44492 44481 44472 44491 44489 44468 44472 44471 44474 44471 44470 44468 44490
44481 44492 44492 44487 44491 44489 44488 44484 44473 44470 44474 44471 44470 44469 44499
44486 44485 44493 44492 44486 44489 44475 44487 44473 44470 44468 44471 44486 44468 44490
44493 44482 44496 44471 44492 44494 44489 44477 44467 44471 44475 44471 44468 44468 44476
44495 44473 44487 44473 44472 44473 44471 44469 44473 44473 44468 44470 44470 44468 44470
44471 44473 44474 44472 44471 44473 44467 44469 44475 44470 44472 44468 44469 44464 44470
44492 44471 44494 44472 44472 44477 44478 44470 44472 44470 44473 44470 44470 44473 44475
44493 44490 44494 44492 44484 44480 44490 44476 44471 44475 44473 44473 44468 44466 44502
44473 44473 44477 44471 44471 44473 44476 44470 44473 44469 44475 44472 44468 44468 44475
44496 44501 44494 44472 44472 44473 44474 44462 44472 44470 44473 44471 44470 44470 44490

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 44476 bytes 100%
1,000 44468 bytes -8 bytes 100%
10,000 44465 bytes -3 bytes 100%
100,000 44462 bytes -3 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
44557 bytes +95 bytes (+0.21%)
44558 bytes +96 bytes (+0.22%) +1 byte
44582 bytes +120 bytes (+0.27%) +25 bytes
44619 bytes +157 bytes (+0.35%) +62 bytes
44629 bytes +167 bytes (+0.38%) +72 bytes
44659 bytes +197 bytes (+0.44%) +102 bytes
44644 bytes +182 bytes (+0.41%) +87 bytes
44653 bytes +191 bytes (+0.43%) +96 bytes
44674 bytes +212 bytes (+0.48%) +117 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 35500 bytes -8962 bytes (-20.16%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 37065 bytes -7397 bytes (-16.64%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 38879 bytes -5583 bytes (-12.56%)
Brotli (Wikipedia) brotli brotli -q 11 40885 bytes -3577 bytes (-8.05%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 41620 bytes -2842 bytes (-6.39%)
LZMA2 (Wikipedia) xz xz -9 42308 bytes -2154 bytes (-4.84%)
Zstandard (Wikipedia) zstd zstd -19 43428 bytes -1034 bytes (-2.33%)

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.