HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
google
brotli
TypeScript2015–2026
google / brotli

brotli

Brotli compression format

35Distinct people
39Mentions
0Explicit recommenders
15.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Brotli compression format

GitHub

Where it is used

  • Chromium — Chromium ships this library to decode WOFF 2.0 fonts and "Content-Encoding: br" responses. Source

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year39 dated mentions

Observed mentions: 2015-05-26 11:50:27 UTC to 2026-10-26 00:43:08 UTC.

02462015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 5 mentions; 3 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC514
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC532
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC413
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC303
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC707
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC606

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Introduction Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression. The specification of the Brotli Compressed Data Format is defined in RFC 7932. Brotli is open-sourced under the MIT License, see the LICENSE file. Please note: brotli is a "stream" format; it does not contain meta-information, like checksums or uncompressed data length. It is possible to modify "raw" ranges of the compressed stream and the decoder will not notice that. Installation In most Linux distributions, installing brotli is just a matter of using the package management system. For example in Debian-based distributions: apt install brotli will install brotli. On MacOS, you can use Homebrew: brew install brotli. Of course you can also build brotli from sources. Build instructions Vcpkg You can download and install brotli using the vcpkg dependency manager: git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh ./vcpkg integrate install ./vcpkg install brotli The brotli port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository. Bazel See Bazel CMake The basic commands to build and install brotli are: $ mkdir out && cd out $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./installed .. $ cmake --build . --config Release --target install You can use other CMake configuration. Python To install the latest release of the Python module, run the following: $ pip install brotli To install the tip-of-the-tree version, run: $ pip install --upgrade git+https://github.com/google/brotli See the Python readme for more details on installing from source, development, and testing. Contributing We glad to answer/library related questions in brotli mailing list. Regular issues / feature requests should be reported in issue tracker. For reporting vulnerability please read SECURITY. For contributing changes please read CONTRIBUTING. Benchmarks Squash Compression Benchmark / Unstable Squash Compression Benchmark Large Text Compression Benchmark Lzturbo Benchmark Related projects Disclaimer: Brotli authors take no responsibility for the third party projects mentioned in this section. Independent decoder implementation by Mark Adler, based entirely on format specification. JavaScript port of brotli decoder. Could be used directly via npm install brotli Hand ported decoder / encoder in haxe by Dominik Homberger. Output source code: JavaScript, PHP, Python, Java and C# 7Zip plugin Dart compression framework with fast FFI-based Brotli implementation with ready-to-use prebuilt binaries for Win/Linux/Mac
Read the full README on GitHub

What Hacker News says

39 sources
[Edit: I was inattentive and replied twice in different ways, thinking they were to different parent comments; I've now merged my thoughts and edited them to be more coherent.] > reported This is Mozilla's own discussion of the issue, though. There's mention of > https://github.com/google/brotli/blob/master/SECURITY.md suggests that it should go through Google's regular vulnerability reporting process. I don't have any more specific knowledge around this library, however. but that doesn't establish that this was done. If it was done, then I think we deserve answers about why it took Google almost 8 months to release a new version of a common dependency, applying a security patch (and no other changes!) when the vulnerability was known at least 6 months ago (and possibly the full 8 months ago) to cause RCE. If I'm understanding the report
Read the rest
correctly, the patch was applied in Firefox's vendored copy within days, and available in 151 and I guess some 150.0.x release. And also they were supposedly beaten to the punch: > Probably we should update to cfa184a997ac19454d5a3ae97f6d600aac2445a6 which was rolled into chromium 2 weeks ago. If there are other recent sec fixes this would pick them up It seems even more embarrassing if chromium got the patch but Chrome didn't. And if Chrome did, then it's that much more appalling not to see a patched separate release for so long. (I was confused trying to go through the technical details, though: the "affected code" seems to have very little overlap with the code actually altered by the patch.)
In Broccoli2Shell: Brotli decoder RCE in Node.js, Python and more
This is just a static HTML file created by the program Toilet [1] not my repo, and compressed with Brotli [2] also not my repo. I am just curious if LLM's can: - reach and parse the file, - comprehend what it says. Browsers can parse it because they will accept the most abhorrent HTML. Humans can understand it because they are intelligent. I am curious if AI bots are also this tolerant. I know, it's a silly and stupid test. I am just curious which LLM bots are able to cope and if this is a way humans could communicate a short message without bots snooping. [1] - https://github.com/cacalabs/toilet [2] - https://github.com/google/brotli
In AI Bot Test: Can your AI Access AND Understand This?
I have to disagree with your premise. The goal of many software engineers is to build software / systems they can be proud of. They love software and the machines it runs on. Many people here have Arduino projects, 3D printers, home servers, and similar hobbies. A few weeks ago, I was looking for compression algorithms for a particular use case and came across Brotli[0]. I was surprised to learn it was developed by Google. That realization hit me hard. Google used to be a hub for this kind of innovation. Projects like Brotli aren't built to maximize personal profit; they're driven by passion and a genuine love for software engineering. It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused. [0] https://github.com/google/brotli
In A career-ending mistake
...though with the slightly unexpected side effect (for Brotli, at least) that your executable may end up containing (~200KB, from memory) of very unexpected[-1] plain text strings which might (& has[0]) lead to questions from software end-users asking why your software contains "random"[1] text (including potentially "culturally sensitive" words/phrases related to religion such as "Holy Roman Emperor", "Muslims", "dollars", "emacs"[2] or similar). (I encountered this aspect while investigating potential size optimization opportunities for the Godot game engine's web/WASM builds--though presumably the Brotli dictionary compresses well if the transfer encoding is... Brotli. :D ) ---- footnotes ---- [-1] An aspect also previously mentioned on HN: https://news.ycombinator.com/item?id=27160590 [0] "This needs to be reviewed immediately #876":
Read the rest
https://github.com/google/brotli/issues/876 [1] Which, regardless of meaning, certainly bears similarities to the type of "unexpected weird text" commonly/normally associated with spam, malware, LLMs and other entities of ill repute. [2] The final example may not actually be factual. :)
In LZW and GIF explained
JPEGLI = A small JPEG The suffix -li is used in Swiss German dialects. It forms a diminutive of the root word, by adding -li to the end of the root word to convey the smallness of the object and to convey a sense of intimacy or endearment. This obviously comes out of Google Zürich. Other notable Google projects using Swiss German: https://github.com/google/gipfeli high-speed compression Gipfeli = Croissant https://github.com/google/guetzli perceptual JPEG encoder Guetzli = Cookie https://github.com/weggli-rs/weggli semantic search tool Weggli = Bread roll https://github.com/google/brotli lossless compression Brötli = Small bread
In Jpegli: A new JPEG coding library
For anyone who wants to try this, zstd -T0 uses all your threads to compress, and https://github.com/facebook/zstd has a lot more description. Brotli, https://github.com/google/brotli, is another modern format with some good features for high compression levels, which also has Content-Encoding support in web browsers. You might also want to play with compression levels (-1 to -11 or more, zstd's --fast=n); they may not map 1:1 to gzip's. One reason these modern compressors do better is not any particular mistake made defining DEFLATE in the 90s, but that new algos use a few MB of recently seen data as context instead of 32KB, and do other things that would have been impractical in the 90s but are reasonable with modern hardware. The new algorithms also contain lots of smart ideas and have fine-tuned implementations, but that core differen
Read the rest
ce seems important to note.
In How much faster is making a tar archive without gzip?
In Ask HN: What are the best publicly available FAMANG code repos?

Showing the 15 most recent of 39 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.