draft
28 files changed
tree: 153d6dbabcf6dd35c502afc37a0f6cc20456fc35
  1. .github/
  2. c/
  3. contrib/
  4. java/
  5. scripts/
  6. third_party/
  7. wasm/
  8. .gitmodules
  9. brunsli.cmake
  10. BUILD
  11. CMakeLists.txt
  12. compiler_config_setting.bzl
  13. CONTRIBUTING.md
  14. explainer.md
  15. LICENSE
  16. Makefile
  17. README.md
  18. security-privacy-questionnaire.md
  19. WORKSPACE
README.md

Introduction

CMake build

Brunsli is a lossless JPEG repacking library.

Brunsli allows for a 22% decrease in file size while allowing the original JPEG to be recovered byte-by-byte.

It is possible to try how much Brunsli will save on your images on the site brunsli.dev. Images are transcoded in browser, no data is transmitted or stored. Codec is powered by WASM technology. Safari uses “interpretation” mode for WASM at first few runs after the page load. It is much slower. To avoid long wait, please feed codec with small images first.

VERY GOOD NEWS: Brunsli is on its way to become standardized. Brunsli has been specified as the lossless JPEG transport layer in the Committee Draft of JPEG XL Image Coding System and is ready to power faster and more economical transfer and storage of photographs.

We are committed to making JPEG XL a first-class citizen of the open-source and closed-source worlds, and we will integrate it into image and networking related tools.

The currently planned/on-going integration work includes:

  • [x] one-shot C API / dynamic library
  • [x] WASM module
  • [ ] Node.js module
  • [x] Java bindings
  • [x] Python libraries support (OpenCV, imageio, PythonMagic, PIL, etc.)
  • [ ] Python bindings
  • [ ] Nginx transcoding module
  • [x] Nginx serving module
  • [ ] Apache transcoding module
  • [x] Apache serving module

Stay tuned!

Build instructions

Run the following commands to clone, configure and build Brunsli:

git clone --depth=1 https://github.com/google/brunsli.git
cd brunsli
git submodule update --init --recursive
cmake -DCMAKE_BUILD_TYPE=Release -B out
cmake --build out --config Release

Prebuilt binaries

For some platforms (e.g. Windows) libraries and executables are uploaded as “artifacts” as a part of continous integration process. Unfortunately, there is no static link to access those. Please follow the GitHub manual.