brotli-1.1.0

Introduction to Brotli

Brotli provides a general-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. Its libraries are particularly used for WOFF2 fonts on webpages.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Brotli Dependencies

Required

CMake-3.27.5

Optional

pluggy-1.0.0 and pytest-7.4.2 (for testing Python3 bindings)

Installation of Brotli

Install brotli by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..  &&
make

To test the results, issue: make test.

Now, as the root user:

make install

If desired, build the Python3 bindings:

cd .. &&
sed "/c\/.*\.[ch]'/d;\
     /include_dirs=\[/\
     i libraries=['brotlicommon','brotlidec','brotlienc']," \
    -i setup.py &&
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD

Install the Python3 bindings as the root user:

pip3 install --no-index --find-links=dist --no-cache-dir --no-user Brotli

To test the Python3 binding, issue: pytest.

Command Explanations

sed ... -i setup.py: Stop setup.py from rebuilding the entire package all over again, use the already installed libraries for the Python3 binding instead.

--disable-static: This switch prevents installation of static versions of the libraries.

Contents

Installed Programs: brotli
Installed Libraries: libbrotlicommon.so, libbrotlidec.so, and libbrotlienc.so
Installed Directories: /usr/include/brotli and /usr/lib/python3.11/site-packages/Brotli-1.1.0.dist-info (if you built and installed the Python3 bindings)

Short Descriptions

brotli

can compress or decompress files, or test the integrity of compressed files

libbrotlicommon{-static.a,.so}

is the Brotli common dictionary library

libbrotlidec{-static.a,.so}

is the Brotli decoder library

libbrotlienc{-static.a,.so}

is the Brotli common encoder library