Knowledge

zlib

Source 📝

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

Index


verification
improve this article
adding citations to reliable sources
"Zlib"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Z-Library
zlib logo
Stable release
Repository
github.com/madler/zlib
Edit this at Wikidata
C
Operating system
Cross-platform
Type
Data compression
License
zlib License
zlib.net
/ˈzlɪb/
zeta
/ˈztəˌlɪb/
software library
data compression

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.