Choose a version:
36% The original file has 259996 bytes (253.9k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 92792 bytes (90.6k, 36%).

After GZIP compression these minified files vary in size:
Microsoft
  42264 bytes (41.3k)
CDN
Boot
  38553 bytes (37.6k)
CDN
Baidu
  33457 bytes (32.7k)
CDN
cdnjs
  33457 bytes (32.7k)
CDN
gzip -6 (default)
  33236 bytes (32.5k)
local copy
Google
  33221 bytes (32.4k)
CDN
gzip -9
  33195 bytes (32.4k)
local copy
libdeflate -12
  32197 bytes (31.4k)
local copy
7zip -mx=9 -tgzip
  32135 bytes (31.4k)
local copy
kzip -s0 -rn -b1
  32119 bytes (31.4k)
local copy
zultra
  32080 bytes (31.3k)
local copy
Yandex
  32076 bytes (31.3k)
CDN
pigz -11 -n
  32052 bytes (31.3k)
local copy
Zopfli
  32029 bytes (31.3k)
local copy
Zopfli (defluff)
  32028 bytes (31.3k)
local copy

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

You will automatically get the smallest jQuery 1.8.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 47 bytes by using my jQuery 1.8.1 Zopfli version instead of the best available CDN (0.15% smaller than Yandex, 32029 vs. 32076 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 --mls8192 --bsr16 --lazy --ohh

(found January 8, 2016)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 8192  --mls8192
block splitting recursion 16  --bsr16
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 (32028 bytes).

Verify file integrity

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

MD5:
curl --silent --compressed https://code.jquery.com/jquery-1.8.1.min.js --location | md5sum
e7155ee7c8c9898b6d4f2a9a12a1288e  -
curl --silent --compressed https://minime.stephan-brumme.com/files/jquery/jquery-1.8.1.min.zopfli.js.gz | md5sum
e7155ee7c8c9898b6d4f2a9a12a1288e  -

SHA1:
curl --silent --compressed https://code.jquery.com/jquery-1.8.1.min.js --location | sha1sum
d1b0ac46b41cbde7a4608fb270745929902bac7c  -
curl --silent --compressed https://minime.stephan-brumme.com/files/jquery/jquery-1.8.1.min.zopfli.js.gz | sha1sum
d1b0ac46b41cbde7a4608fb270745929902bac7c  -

These CDNs send you the original file:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 38553 bytes e7155ee7c8c9898b6d4f2a9a12a1288e March 18, 2015 @ 09:42

And some CDNs send you a different file:
CDN Size (compressed) MD5 (uncompressed) Comment / Diff Timestamp
Microsoft 42264 bytes a9a0cc296e96bbeaa0f82498e2da0917 only whitespaces differ (invalid)
Baidu 33457 bytes a9a0cc296e96bbeaa0f82498e2da0917 only whitespaces differ (invalid)
cdnjs 33457 bytes a9a0cc296e96bbeaa0f82498e2da0917 only whitespaces differ (invalid)
Google 33221 bytes a9a0cc296e96bbeaa0f82498e2da0917 only whitespaces differ (invalid)
Yandex 32076 bytes a9a0cc296e96bbeaa0f82498e2da0917 only whitespaces differ June 15, 2015 @ 21:17

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

Other Versions

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

3.6.1, 3.6.0,
3.5.1, 3.5.0,
3.4.1, 3.4.0,
3.3.1, 3.3.0,
3.2.1, 3.2.0,
3.1.1, 3.1.0, 3.0.0,
2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0,
1.12.4, 1.12.3, 1.12.2, 1.12.1, 1.12.0,
1.11.3, 1.11.2, 1.11.1, 1.11.0,
1.10.2, 1.10.1, 1.10.0,
1.9.1, 1.9.0,
1.8.3, 1.8.2, 1.8.1, 1.8.0,
1.7.2, 1.7.1, 1.7.0,
1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6,
1.5.2, 1.5.1, 1.5,
1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4,
1.3.2, 1.3.1, 1.3,
1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2,
1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1,
1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0

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

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
32029 bytes -1 byte zopfli --i100000 --mls8192 --bsr16 --lazy --ohh January 8, 2016 @ 13:46
32030 bytes -3 bytes zopfli --i100000 --mls8192 --bsr13 --lazy --ohh September 1, 2015 @ 23:39
32033 bytes -2 bytes zopfli --i10000 --mls8192 --bsr13 --lazy --ohh September 1, 2015 @ 21:24
32035 bytes -5 bytes zopfli --i1000 --mls8192 --bsr13 --lazy --ohh September 1, 2015 @ 20:36
32040 bytes zopfli --i100 --mls8192 --bsr16 --lazy --ohh September 1, 2015 @ 20:28

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 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
32052 32045 32054 32055 32066 32065 32055 32055 32064 32053 32042 32057 32050 32060 32053
32053 32054 32054 32054 32054 32054 32052 32053 32049 32041 32037 32040 32052 32046 32055
32044 32037 32040 32052 32052 32053 32047 32051 32044 32035 32037 32036 32040 32046 32038
32040 32052 32039 32052 32040 32045 32046 32041 32056 32044 32039 32031 32048 32047 32036
32035 32036 32042 32052 32052 32035 32047 32048 32046 32040 32035 32043 32037 32047 32043
32041 32036 32041 32052 32036 32056 32045 32045 32049 32042 32037 32041 32037 32045 32034
32043 32042 32051 32037 32052 32034 32045 32054 32039 32040 32039 32044 32044 32046 32049
32038 32056 32051 32046 32052 32053 32047 32048 32044 32050 32036 32047 32031 32047 32053
32041 32037 32040 32038 32054 32039 32047 32045 32048 32039 32037 32045 32030 32046 32036
32042 32042 32041 32042 32052 32045 32047 32045 32039 32040 32035 32034 32030 32047 32045
32045 32042 32050 32038 32052 32052 32045 32045 32052 32037 32036 32036 32030 32045 32043
32051 32037 32040 32046 32041 32044 32046 32039 32045 32042 32039 32034 32038 32045 32034
32040 32040 32037 32038 32047 32045 32045 32045 32044 32040 32035 32030 32029 32047 32050
32042 32037 32039 32046 32054 32045 32045 32045 32056 32038 32039 32036 32032 32044 32050
32045 32042 32039 32052 32036 32038 32047 32045 32051 32044 32039 32036 32043 32049 32048
32036 32038 32039 32050 32047 32052 32047 32044 32051 32042 32039 32042 32030 32051 32039
32042 32042 32037 32054 32052 32053 32047 32054 32055 32043 32040 32031 32034 32051 32035
32036 32037 32051 32047 32053 32045 32045 32044 32043 32035 32037 32041 32030 32046 32044
32036 32040 32041 32044 32052 32045 32048 32045 32046 32042 32038 32042 32046 32044 32036
32041 32041 32040 32045 32052 32039 32047 32054 32046 32050 32039 32032 32045 32047 32049
32040 32039 32044 32055 32053 32045 32046 32054 32051 32042 32037 32035 32031 32047 32049
32037 32037 32039 32045 32052 32045 32045 32054 32049 32038 32037 32042 32045 32047 32049
32038 32038 32039 32038 32052 32039 32048 32045 32052 32044 32037 32036 32044 32046 32050

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 32040 bytes 100%
1,000 32035 bytes -5 bytes 100%
10,000 32032 bytes -3 bytes 100%
100,000 32029 bytes -3 bytes 12.17%
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
32120 bytes +91 bytes (+0.28%) +1 byte
32119 bytes +90 bytes (+0.28%)
32149 bytes +120 bytes (+0.37%) +30 bytes
32182 bytes +153 bytes (+0.48%) +63 bytes
32190 bytes +161 bytes (+0.50%) +71 bytes
32213 bytes +184 bytes (+0.57%) +94 bytes
32217 bytes +188 bytes (+0.59%) +98 bytes
32260 bytes +231 bytes (+0.72%) +141 bytes
32291 bytes +262 bytes (+0.82%) +172 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 25697 bytes -6332 bytes (-19.77%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 26563 bytes -5466 bytes (-17.07%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 28257 bytes -3772 bytes (-11.78%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 29615 bytes -2414 bytes (-7.54%)
Brotli (Wikipedia) brotli brotli -q 11 29620 bytes -2409 bytes (-7.52%)
LZMA2 (Wikipedia) xz xz -9 30720 bytes -1309 bytes (-4.09%)
Zstandard (Wikipedia) zstd zstd -19 31436 bytes -593 bytes (-1.85%)

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.