{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,6]],"date-time":"2026-05-06T06:27:53Z","timestamp":1778048873111,"version":"3.51.4"},"reference-count":29,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2018,12,6]],"date-time":"2018-12-06T00:00:00Z","timestamp":1544054400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Google Faculty Research Award"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Inf. Syst."],"published-print":{"date-parts":[[2019,1,31]]},"abstract":"<jats:p>Brotli is an open source general-purpose data compressor introduced by Google in late 2013 and now adopted in most known browsers and Web servers. It is publicly available on GitHub and its data format was submitted as RFC 7932 in July 2016. Brotli is based on the Lempel-Ziv compression scheme and planned as a generic replacement of Gzip and ZLib. The main goal in its design was to compress data on the Internet, which meant optimizing the resources used at decoding time, while achieving maximal compression density.<\/jats:p>\n          <jats:p>This article is intended to provide the first thorough, systematic description of the Brotli format as well as a detailed computational and experimental analysis of the main algorithmic blocks underlying the current encoder implementation, together with a comparison against compressors of different families constituting the state-of-the-art either in practice or in theory. This treatment will allow us to raise a set of new algorithmic and software engineering problems that deserve further attention from the scientific community.<\/jats:p>","DOI":"10.1145\/3231935","type":"journal-article","created":{"date-parts":[[2018,12,6]],"date-time":"2018-12-06T13:34:16Z","timestamp":1544103256000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":81,"title":["Brotli"],"prefix":"10.1145","volume":"37","author":[{"given":"Jyrki","family":"Alakuijala","sequence":"first","affiliation":[{"name":"Google Research, Z\u00fcrich, Switzerland"}]},{"given":"Andrea","family":"Farruggia","sequence":"additional","affiliation":[{"name":"Universit\u00e0 di Pisa, Pisa, Italy"}]},{"given":"Paolo","family":"Ferragina","sequence":"additional","affiliation":[{"name":"Universit\u00e0 di Pisa, Pisa, Italy"}]},{"given":"Eugene","family":"Kliuchnikov","sequence":"additional","affiliation":[{"name":"Google Research, Z\u00fcrich, Switzerland"}]},{"given":"Robert","family":"Obryk","sequence":"additional","affiliation":[{"name":"Google Research, Z\u00fcrich, Switzerland"}]},{"given":"Zoltan","family":"Szabadka","sequence":"additional","affiliation":[{"name":"Google Research, Z\u00fcrich, Switzerland"}]},{"given":"Lode","family":"Vandevenne","sequence":"additional","affiliation":[{"name":"Google Research, Z\u00fcrich, Switzerland"}]}],"member":"320","published-online":{"date-parts":[[2018,12,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"crossref","DOI":"10.17487\/RFC7932","volume-title":"Brotli compressed data format (RFC 7932)","author":"Alakuijala Jyrki","year":"2016"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/322092.322094"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2003.05.002"},{"key":"e_1_2_1_4_1","volume-title":"Wheeler","author":"Burrows Michael","year":"1994"},{"key":"e_1_2_1_5_1","unstructured":"Yann Collet. 2011. The Compressor LZ4. Retrieved from https:\/\/en.wikipedia.org\/wiki\/LZ4_(compression_algorithm).  Yann Collet. 2011. The Compressor LZ4. Retrieved from https:\/\/en.wikipedia.org\/wiki\/LZ4_(compression_algorithm)."},{"key":"e_1_2_1_6_1","unstructured":"Yann Collet. 2016. The Compressor ZStd. Retrieved from http:\/\/www.zstd.net.  Yann Collet. 2016. The Compressor ZStd. Retrieved from http:\/\/www.zstd.net."},{"key":"e_1_2_1_7_1","unstructured":"Lasse Collin. 2010. XZ Utils. Retrieved from https:\/\/tukaani.org\/xz\/.  Lasse Collin. 2010. XZ Utils. Retrieved from https:\/\/tukaani.org\/xz\/."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 2015 Picture Coding Symposium (PCS\u201915)","author":"Duda Jarek"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/2634074.2634189"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44777-2_34"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1082036.1082043"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/2616915.2617136"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1137\/120869511"},{"key":"e_1_2_1_14_1","unstructured":"Rich Geldreich. 2010. The Compressor LZHAM. Retrieved from https:\/\/github.com\/richgel999\/lzham_codec.  Rich Geldreich. 2010. The Compressor LZHAM. Retrieved from https:\/\/github.com\/richgel999\/lzham_codec."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2005.09.015"},{"key":"e_1_2_1_16_1","unstructured":"Apple Inc. 2015. The Compressor LZFSE. Retrieved from https:\/\/github.com\/lzfse\/lzfse.  Apple Inc. 2015. The Compressor LZFSE. Retrieved from https:\/\/github.com\/lzfse\/lzfse."},{"key":"e_1_2_1_17_1","unstructured":"Sanjay Jeff Dean Steinar Ghemawat and H. Gunderson. 2011. The Compressor Snappy. Retrieved from https:\/\/en.wikipedia.org\/wiki\/Snappy_(compression).  Sanjay Jeff Dean Steinar Ghemawat and H. Gunderson. 2011. The Compressor Snappy. Retrieved from https:\/\/en.wikipedia.org\/wiki\/Snappy_(compression)."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/647819.736201"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/26.61469"},{"key":"e_1_2_1_20_1","volume-title":"The Algorithm: Lempel-Ziv-Markov Chain.","author":"Pavlov Igor","year":"1998"},{"key":"e_1_2_1_21_1","volume-title":"Data Compression: The Complete Reference","author":"Salomon David","year":"2007","edition":"4"},{"key":"e_1_2_1_22_1","first-page":"9","article-title":"A comparison of algorithms for data base compression by use of fragments as language elements","volume":"10","author":"Schuegraf E. J.","year":"1974","journal-title":"Inf. Stor. Retriev."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01940876"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3828.3835"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/26.843129"},{"key":"e_1_2_1_26_1","unstructured":"Lode Vandevenne and Jyrki Alakuijala. 2013. Zopfli. Retrieved from https:\/\/github.com\/google\/zopfli.  Lode Vandevenne and Jyrki Alakuijala. 2013. Zopfli. Retrieved from https:\/\/github.com\/google\/zopfli."},{"key":"e_1_2_1_27_1","volume-title":"Managing Gigabytes: Compressing and Indexing Documents and Images","author":"Witten I. H.","year":"1999"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/TIT.1977.1055714"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/TIT.1978.1055934"}],"container-title":["ACM Transactions on Information Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3231935","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3231935","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:08:17Z","timestamp":1750208897000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3231935"}},"subtitle":["A General-Purpose Data Compressor"],"short-title":[],"issued":{"date-parts":[[2018,12,6]]},"references-count":29,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2019,1,31]]}},"alternative-id":["10.1145\/3231935"],"URL":"https:\/\/doi.org\/10.1145\/3231935","relation":{},"ISSN":["1046-8188","1558-2868"],"issn-type":[{"value":"1046-8188","type":"print"},{"value":"1558-2868","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,12,6]]},"assertion":[{"value":"2017-09-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-12-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}