825:
209:
136:
22:
508:
Errors in compressed data may be detected and skipped. Further, if "full-flush" points are written to the compressed stream, then corrupt data can be skipped, and the decompression will resynchronize at the next flush point—although no error recovery of the corrupt data is provided. Full-flush points
517:
There is no limit to the length of data that can be compressed or decompressed. Repeated calls to the library allow an unlimited number of blocks of data to be handled. Some ancillary code (counters) may suffer from overflow for long data streams, but this does not affect the actual compression or
495:
The compression can be optimized for specific types of data. If one is using the library to always compress specific types of data, then using a specific strategy may improve compression and performance. For example, if the data contain long lengths of repeated bytes, the
486:
zlib provides facilities for control of processor and memory use. A compression level value may be supplied that trades speed for compression. There are also facilities for conserving memory, useful in restricted memory environments, such as some embedded systems.
509:
are useful for large data streams on unreliable channels, where some data loss is unimportant, such as in some multimedia applications. However, creating many flush points can affect the speed as well as the amount (ratio) of compression.
450:
compressed data (RFC 1951) are typically written with a zlib or gzip wrapper encapsulating the data, by adding a header and footer. This provides stream identification and error detection that are not provided by the raw DEFLATE data.
538:, to the point that zlib and DEFLATE are often used interchangeably in standards documents, with thousands of applications relying on it for compression, either directly or indirectly. These include:
965:
1167:
1143:
1240:
474:. This algorithm provides good compression on a wide variety of data with minimal use of system resources. This is also the algorithm used in the
454:
The zlib wrapper (RFC 1950) is smaller than the gzip wrapper (RFC 1952), as the latter stores a file name and other file system information.
1378:
926:
1398:
1299:
1388:
1211:
1393:
784:
zlib-ng is a zlib replacement fork for "next generation" systems. It removes workaround code for compilers that do not support
1164:
830:
959:
920:
105:
1139:
1383:
241:
86:
58:
1330:
949:
421:
The first public version of Zlib, 0.9, was released on 1 May 1995 and was originally intended for use with the
371:
43:
1185:
500:(RLE) strategy may give good results at a higher speed. For general data, the default strategy is preferred.
1232:
65:
1269:
188:
888:
765:
162:
1101:
676:
521:
When compressing a long (or infinite) data stream, it is advisable to write regular full-flush points.
1121:
72:
1233:"MySQL :: MySQL 8.0 Reference Manual :: 15.9.1.5 How Compression Works for InnoDB Tables"
640:
629:
567:
222:
868:
756:, because the code is portable, liberally licensed, and has a relatively small memory footprint.
382:
file compression program. zlib is also a crucial component of many software platforms, including
234:
54:
32:
1373:
737:
706:
789:
39:
910:
699:
system uses zlib to store the contents of its data objects (blobs, trees, commits and tags).
8:
662:
613:
client and server, which rely on zlib to perform the optional compression offered by the
497:
355:
1291:
208:
797:
724:
592:
478:. The header makes allowance for other algorithms, but none are currently implemented.
1207:
639:
multimedia library, which uses zlib to read and write the DEFLATE-compressed parts of
955:
916:
853:
672:
654:
remote file synchronizer, which uses zlib to implement optional protocol compression.
475:
1323:"zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems"
880:
1074:
1048:
1022:
996:
596:
363:
359:
319:
286:
253:
246:
229:
848:
467:
135:
79:
1171:
696:
679:
665:
535:
1068:
1042:
1016:
990:
801:
713:
689:
column-oriented data storage format use ZLib as its default compression method.
471:
1367:
809:
753:
426:
399:
395:
682:
systems, which use zlib to compress traffic to and from remote repositories.
858:
614:
557:
553:
546:, where zlib is used to implement compressed network protocols, compressed
543:
430:
258:
764:
A commonly used library built on an old codebase, zlib is also frequently
585:
547:
574:
image format, which specifies DEFLATE as the stream compression for its
778:
703:
686:
367:
1322:
1079:
1053:
1027:
1001:
912:
The Linux
Cookbook, 2nd Edition: Tips and Techniques for Everyday Use
709:
uses zlib with custom dump format (pg_dump -Fc) for database backups.
122:
462:
As of
September 2018, zlib only supports one algorithm, called
21:
1292:"Fighting Cancer: The Unexpected Benefit Of Open Sourcing Our Code"
1195:
668:, which use zlib to unpack files from compressed software packages.
644:
531:
415:
411:
838:
805:
720:
621:
610:
463:
447:
375:
197:
1261:
1191:
863:
785:
749:
741:
712:
The class System.IO.Compression.DeflateStream of the
Microsoft
636:
625:
581:
575:
563:
422:
781:
maintains a high-performance fork with "massive" improvements.
748:
zlib is also used in many embedded devices, such as the Apple
628:
security libraries, which can optionally use zlib to compress
328:
295:
772:
734:
651:
403:
387:
383:
1095:
843:
793:
658:
603:
379:
334:
313:
1140:"ORCFile in HDP 2: Better Compression, Better Performance"
768:
by third-parties that claim improvements to this library:
693:
571:
407:
391:
343:
301:
394:. It has also been used in gaming consoles such as the
788:, integrates Cloudflare and Intel optimizations, adds
730:
zlib-flate, raw zlib compression program, part of qpdf
337:
325:
292:
820:
346:
340:
331:
304:
298:
322:
289:
46:. Unsourced material may be challenged and removed.
550:, and to decompress the kernel image at boot time.
269:
948:Loki Software; Hall, John R. (October 22, 2001).
947:
1365:
606:library uses zlib to decompress HTTP responses.
362:as well as a data format. zlib was written by
1356:
1094:Gailly, Jean-loup; Adler, Mark (2002-04-18),
889:"[Zlib-announce] zlib 1.3.1 released"
466:, which uses a combination of a variation of
719:The "deflate" utility in TORNADO as part of
1093:
886:
980:
207:
1078:
1052:
1026:
1000:
985:
983:
106:Learn how and when to remove this message
1320:
1366:
1302:from the original on 21 September 2019
727:uses zlib to compress boot ROM images.
929:from the original on January 25, 2023
908:
1272:from the original on 25 January 2024
831:Free and open-source software portal
775:has a high-performance fork of zlib.
378:compression algorithm used in their
44:adding citations to reliable sources
15:
1165:System.IO.Compression.DeflateStream
909:Stutz, Michael (October 22, 2004).
584:, an API for web applications like
13:
1379:C (programming language) libraries
1333:from the original on 20 April 2020
1146:from the original on 6 August 2020
968:from the original on July 11, 2024
740:uses ZLib LZ77 for compression in
14:
1410:
1348:
503:
1321:Rosbach, HK (24 February 2023).
823:
441:
318:
285:
134:
20:
1399:Software using the zlib license
1314:
1284:
1254:
1243:from the original on 2021-08-01
1225:
1214:from the original on 2024-07-11
1200:
1177:
1158:
1132:
1122:"c++ - Why does cURL use zlib?"
1104:from the original on 2019-06-10
887:Adler, Mark (22 January 2024).
595:, which uses zlib to implement
524:
481:
436:
31:needs additional citations for
1389:Free data compression software
1114:
1087:
1061:
1035:
1009:
941:
902:
529:Today, zlib is something of a
512:
1:
1394:Free software programmed in C
874:
457:
7:
816:
490:
10:
1415:
168:1.3.1 / 22 January 2024
120:
976:– via Google Books.
937:– via Google Books.
723:Operating System made by
264:
252:
240:
228:
218:
187:
183:
161:
157:
142:
133:
759:
568:reference implementation
429:, distributed under the
121:Not to be confused with
1384:Free computer libraries
951:Programming Linux Games
869:List of archive formats
470:(Lempel–Ziv 1977) and
170:; 8 months ago
790:hardware acceleration
425:image library. It is
118:DEFLATE codec library
1142:. 6 September 2013.
849:LZ77 and LZ78 § LZ77
146:1 May 1995
40:improve this article
1296:The Cloudflare Blog
1268:. 25 January 2024.
1262:"github Intel ZLIB"
954:. No Starch Press.
915:. No Starch Press.
798:intrinsic functions
498:run-length encoding
130:
1170:2016-02-06 at the
812:to help find bugs.
725:Wind River Systems
593:Apache HTTP Server
476:Zip archive format
128:
1194:General Commands
1097:zlib Applications
854:Zip (file format)
673:Apache Subversion
278:
277:
116:
115:
108:
90:
1406:
1360:
1359:
1357:Official website
1343:
1342:
1340:
1338:
1318:
1312:
1311:
1309:
1307:
1288:
1282:
1281:
1279:
1277:
1258:
1252:
1251:
1249:
1248:
1229:
1223:
1222:
1220:
1219:
1204:
1198:
1189:
1188:
1181:
1175:
1162:
1156:
1155:
1153:
1151:
1136:
1130:
1129:
1118:
1112:
1111:
1110:
1109:
1091:
1085:
1084:
1082:
1080:10.17487/RFC1951
1065:
1059:
1058:
1056:
1054:10.17487/RFC1952
1039:
1033:
1032:
1030:
1028:10.17487/RFC1951
1013:
1007:
1006:
1004:
1002:10.17487/RFC1950
987:
978:
977:
975:
973:
945:
939:
938:
936:
934:
906:
900:
899:
897:
895:
884:
833:
828:
827:
826:
666:package managers
364:Jean-loup Gailly
360:data compression
356:software library
353:
352:
349:
348:
345:
342:
339:
336:
333:
330:
327:
324:
311:
310:
307:
306:
303:
300:
297:
294:
291:
274:
271:
247:Data compression
230:Operating system
211:
206:
203:
201:
199:
178:
176:
171:
153:
151:
138:
131:
127:
111:
104:
100:
97:
91:
89:
48:
24:
16:
1414:
1413:
1409:
1408:
1407:
1405:
1404:
1403:
1364:
1363:
1355:
1354:
1351:
1346:
1336:
1334:
1319:
1315:
1305:
1303:
1298:. 8 July 2015.
1290:
1289:
1285:
1275:
1273:
1260:
1259:
1255:
1246:
1244:
1231:
1230:
1226:
1217:
1215:
1206:
1205:
1201:
1184:
1183:
1182:
1178:
1174:. MSDN Library.
1172:Wayback Machine
1163:
1159:
1149:
1147:
1138:
1137:
1133:
1120:
1119:
1115:
1107:
1105:
1092:
1088:
1067:
1066:
1062:
1041:
1040:
1036:
1015:
1014:
1010:
989:
988:
981:
971:
969:
962:
946:
942:
932:
930:
923:
907:
903:
893:
891:
885:
881:
877:
829:
824:
822:
819:
802:code sanitizers
762:
716:2.0 and higher.
697:version control
680:version control
602:Similarly, the
527:
518:decompression.
515:
506:
493:
484:
460:
444:
439:
321:
317:
288:
284:
268:
214:
196:
179:
175:22 January 2024
174:
172:
169:
149:
147:
143:Initial release
126:
119:
112:
101:
95:
92:
49:
47:
37:
25:
12:
11:
5:
1412:
1402:
1401:
1396:
1391:
1386:
1381:
1376:
1362:
1361:
1350:
1349:External links
1347:
1345:
1344:
1313:
1283:
1253:
1224:
1199:
1176:
1157:
1131:
1126:Stack Overflow
1113:
1086:
1060:
1034:
1008:
979:
960:
940:
921:
901:
878:
876:
873:
872:
871:
866:
861:
856:
851:
846:
841:
835:
834:
818:
815:
814:
813:
782:
776:
761:
758:
746:
745:
731:
728:
717:
714:.NET Framework
710:
700:
690:
683:
669:
655:
648:
641:stream formats
633:
618:
607:
600:
589:
579:
561:
551:
526:
523:
514:
511:
505:
504:Error handling
502:
492:
489:
483:
480:
472:Huffman coding
459:
456:
443:
440:
438:
435:
276:
275:
266:
262:
261:
256:
250:
249:
244:
238:
237:
235:Cross-platform
232:
226:
225:
220:
216:
215:
213:
212:
193:
191:
185:
184:
181:
180:
167:
165:
163:Stable release
159:
158:
155:
154:
144:
140:
139:
117:
114:
113:
28:
26:
19:
9:
6:
4:
3:
2:
1411:
1400:
1397:
1395:
1392:
1390:
1387:
1385:
1382:
1380:
1377:
1375:
1374:1995 software
1372:
1371:
1369:
1358:
1353:
1352:
1332:
1328:
1324:
1317:
1301:
1297:
1293:
1287:
1271:
1267:
1263:
1257:
1242:
1238:
1237:dev.mysql.com
1234:
1228:
1213:
1209:
1203:
1197:
1193:
1190: –
1187:
1186:zlib-flate(1)
1180:
1173:
1169:
1166:
1161:
1145:
1141:
1135:
1127:
1123:
1117:
1103:
1099:
1098:
1090:
1081:
1076:
1072:
1071:
1064:
1055:
1050:
1046:
1045:
1038:
1029:
1024:
1020:
1019:
1012:
1003:
998:
994:
993:
986:
984:
967:
963:
961:9781886411494
957:
953:
952:
944:
928:
924:
922:9781593270315
918:
914:
913:
905:
890:
883:
879:
870:
867:
865:
862:
860:
857:
855:
852:
850:
847:
845:
842:
840:
837:
836:
832:
821:
811:
810:code coverage
807:
803:
799:
795:
791:
787:
783:
780:
777:
774:
771:
770:
769:
767:
757:
755:
754:PlayStation 3
751:
743:
739:
736:
732:
729:
726:
722:
718:
715:
711:
708:
705:
701:
698:
695:
691:
688:
684:
681:
678:
674:
670:
667:
664:
660:
656:
653:
649:
646:
642:
638:
634:
631:
627:
623:
619:
616:
612:
608:
605:
601:
598:
594:
590:
587:
583:
580:
577:
573:
569:
565:
562:
559:
555:
552:
549:
545:
541:
540:
539:
537:
534:
533:
522:
519:
510:
501:
499:
488:
479:
477:
473:
469:
465:
455:
452:
449:
442:Encapsulation
434:
432:
428:
427:free software
424:
419:
417:
413:
409:
405:
401:
400:PlayStation 3
397:
396:PlayStation 4
393:
389:
385:
381:
377:
373:
369:
365:
361:
357:
351:
315:
309:
282:
273:
267:
263:
260:
257:
255:
251:
248:
245:
243:
239:
236:
233:
231:
227:
224:
221:
217:
210:
205:
195:
194:
192:
190:
186:
182:
166:
164:
160:
156:
145:
141:
137:
132:
124:
110:
107:
99:
88:
85:
81:
78:
74:
71:
67:
64:
60:
57: –
56:
52:
51:Find sources:
45:
41:
35:
34:
29:This article
27:
23:
18:
17:
1335:. Retrieved
1326:
1316:
1304:. Retrieved
1295:
1286:
1274:. Retrieved
1265:
1256:
1245:. Retrieved
1236:
1227:
1216:. Retrieved
1202:
1179:
1160:
1148:. Retrieved
1134:
1125:
1116:
1106:, retrieved
1096:
1089:
1069:
1063:
1043:
1037:
1017:
1011:
991:
970:. Retrieved
950:
943:
931:. Retrieved
911:
904:
892:. Retrieved
882:
859:zlib License
800:), and uses
763:
747:
632:connections.
615:Secure Shell
586:web browsers
558:GNU Debugger
554:GNU Binutils
548:file systems
544:Linux kernel
530:
528:
525:Applications
520:
516:
507:
494:
485:
482:Resource use
461:
453:
445:
437:Capabilities
431:zlib License
420:
280:
279:
259:zlib License
102:
93:
83:
76:
69:
62:
50:
38:Please help
33:verification
30:
1329:. zlib-ng.
972:October 28,
933:October 28,
513:Data length
372:abstraction
1368:Categories
1337:18 January
1306:18 January
1276:25 January
1247:2021-07-14
1218:2021-03-28
1108:2007-12-09
894:23 January
875:References
779:Cloudflare
704:PostgreSQL
687:Apache ORC
643:, such as
370:and is an
368:Mark Adler
219:Written in
189:Repository
150:1995-05-01
96:March 2021
66:newspapers
752:and Sony
617:protocol.
458:Algorithm
358:used for
123:Z-Library
1331:Archived
1300:Archived
1270:Archived
1241:Archived
1212:Archived
1168:Archived
1144:Archived
1102:archived
1070:RFC 1951
1044:RFC 1952
1018:RFC 1951
992:RFC 1950
966:Archived
927:Archived
817:See also
645:Matroska
597:HTTP/1.1
570:for the
536:standard
532:de facto
491:Strategy
416:Xbox 360
412:Xbox One
839:DEFLATE
806:fuzzing
744:Tables
721:VxWorks
622:OpenSSL
611:OpenSSH
464:DEFLATE
448:DEFLATE
376:DEFLATE
374:of the
354:) is a
316:-lib",
265:Website
254:License
202:/madler
173: (
148: (
80:scholar
1327:GitHub
1266:github
1208:"qpdf"
1196:Manual
1192:Debian
1150:16 May
958:
919:
864:Zopfli
808:, and
786:ANSI C
766:forked
750:iPhone
742:InnoDB
637:FFmpeg
626:GnuTLS
582:libwww
576:bitmap
566:, the
564:libpng
423:libpng
390:, and
198:github
82:
75:
68:
61:
55:"Zlib"
53:
773:Intel
760:Forks
738:RDBMS
735:MySQL
707:RDBMS
652:rsync
578:data.
560:(GDB)
404:Wii U
388:macOS
384:Linux
204:/zlib
87:JSTOR
73:books
1339:2020
1308:2020
1278:2024
1152:2020
974:2021
956:ISBN
935:2021
917:ISBN
896:2024
844:gzip
796:and
794:SIMD
733:The
702:The
692:The
685:The
675:and
671:The
661:and
659:dpkg
657:The
650:The
635:The
624:and
620:The
609:The
604:cURL
591:The
556:and
542:The
468:LZ77
446:Raw
414:and
380:gzip
366:and
314:zeta
312:or "
281:zlib
272:.net
270:zlib
242:Type
200:.com
129:zlib
59:news
1075:doi
1049:doi
1023:doi
997:doi
694:Git
677:CVS
663:RPM
630:TLS
572:PNG
408:Wii
392:iOS
42:by
1370::
1325:.
1294:.
1264:.
1239:.
1235:.
1210:.
1124:.
1100:,
1073:.
1047:.
1021:.
995:.
982:^
964:.
925:.
804:,
433:.
418:.
410:,
406:,
402:,
398:,
386:,
329:iː
296:iː
1341:.
1310:.
1280:.
1250:.
1221:.
1154:.
1128:.
1083:.
1077::
1057:.
1051::
1031:.
1025::
1005:.
999::
898:.
792:(
647:.
599:.
588:.
350:/
347:b
344:ɪ
341:l
338:ˌ
335:ə
332:t
326:z
323:ˈ
320:/
308:/
305:b
302:ɪ
299:l
293:z
290:ˈ
287:/
283:(
223:C
177:)
152:)
125:.
109:)
103:(
98:)
94:(
84:·
77:·
70:·
63:·
36:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.