Open main menu

Wikipedia β

Brotli is an open source data compression library developed by Jyrki Alakuijala and Zoltán Szabadka.[4][5] Brotli is based on a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.

Brotli
Brotli
Developer(s) Jyrki Alakuijala and Zoltán Szabadka
Stable release
0.6.0 / 10 April 2017; 2 months ago (2017-04-10)[1]
Repository github.com/google/brotli
Written in C[2][a]
Website github.com/google/brotli

It can be used to speed up browsing the Web in Chrome, Opera, Firefox, or Edge.[6][7] Like zopfli, another compression algorithm from Google, brotli is named after a Swiss bakery product, brötli.[8]

Contents

AboutEdit

Brotli was first released in 2015 for off-line compression of web fonts.[9] The version of Brotli released in September 2015 by the Google software engineers contained enhancements in generic lossless data compression, with particular emphasis on use for HTTP compression. The encoder was partly rewritten, with the result that the compression ratio improved, both the encoder and the decoder have been sped up, the streaming API was improved, more compression quality levels have been added. Additionally, the new release shows performance improvements across platforms, with decoding memory reduction.[8]

Unlike most general purpose compression algorithms, Brotli uses a pre-defined 120 kilobyte dictionary, in addition to the dynamically populated ("sliding window") dictionary. The pre-defined dictionary contains over 13000 common words, phrases and other substrings derived from a large corpus of text and HTML documents.[10][11] Using a pre-defined dictionary has been shown to increase compression where a file mostly contains commonly-used words.[12]

Streams compressed with Brotli have the content encoding type "br".

SupportEdit

Browser compatibilityEdit

Web server supportEdit

See alsoEdit

NotesEdit

  1. ^ Brotli's core is written in C, but it has bindings for Java, Python, and C#.[3]

ReferencesEdit

  1. ^ "Releases - google/brotli". Retrieved 21 April 2017 – via GitHub. 
  2. ^ "brotli/README.md at master". 4 April 2017. Retrieved 21 April 2017 – via GitHub. 
  3. ^ "google/brotli - Brotli compression format". Retrieved 21 April 2017 – via GitHub. 
  4. ^ "Brotli Compressed Data Format". IETF Internet Drafts. 2014-05-16. Retrieved 2016-11-01. 
  5. ^ "Brotli Source Code - GitHub". github.com. 
  6. ^ Slater-Robbins, Max (20 Jan 2016). "Chrome and Firefox are about to get a lot faster thanks to Google's new data compression algorithm". techspot.com. Retrieved 20 Jan 2016. 
  7. ^ a b c d "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 2016-01-07. 
  8. ^ a b Google Open Source Blog: Introducing Brotli: a new compression algorithm for the internet
  9. ^ "Smaller Fonts with WOFF 2.0 and unicode-range". Google Developers Blog. 18 Feb 2015. Retrieved 20 Jan 2016. 
  10. ^ Richard Chirgwin (23 September 2015). "Google's new squeeze: Brotli compression open-sourced". The Register. 
  11. ^ Alakuijala, Jyrki; Kliuchnikov, Evgenii; Szabadka, Zoltan; Vandevenne, Lode (2015-09-22). "Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms" (PDF). Google. Retrieved 25 October 2015. 
  12. ^ Larkin, Henry (2007). Word Indexing for Mobile Device Data Representations. IEEE. 
  13. ^ "Introducing Brotli compression in Microsoft Edge". caniuse.com. 
  14. ^ "Firefox 44 release notes". mozilla.org. Retrieved 2016-01-26. 
  15. ^ Aleksandersen, Daniel. "New Brotli compression filter module now in Apache Web Server". Slight Future. Retrieved 2016-10-06. 
  16. ^ "IIS Brotli extension page". Microsoft IIS Community. Retrieved 2016-10-06. 
  17. ^ "ngx_brotli project page". GitHub. Retrieved 2016-10-06. 

External linksEdit