Xberg itself is licensed under MIT. This file documents notable third-party native libraries that Xberg links against or that are redistributed in the published container images, with an emphasis on copyleft (LGPL/GPL) components and how Xberg stays compliant.
Rust crate dependencies and their licenses are governed by
deny.toml(cargo deny check licenses). This file covers the system/native libraries that are linked at the C ABI level and are not visible tocargo deny.
- Feature: optional
heicCargo feature (part offull/formats). Disabled by default. The standalone CLI release binaries (xberg-cli-*.tar.gz) are built withoutheic, so they do not linklibheifat all. - License: GNU Lesser General Public License (LGPL). See the upstream
COPYINGfor the authoritative version and text. - Linking: Dynamic only. Xberg resolves
libheifviapkg-config(-lheif) against the system shared library; it is never statically linked. The musl CLI container build explicitly disablescrt-static(RUSTFLAGS="-C target-feature=-crt-static") so the resulting binary loadslibheif.soat runtime rather than embedding it. The static-build (embedded-libheif) feature has been removed fromxberg-libheif, so there is no supported way to statically linklibheifinto a Xberg build. - Redistribution (container images): the
full/coreimages ship the unmodified upstreamlibheif(v1.23.0, built from the official release tarball) as a standalonelibheif.so*in/usr/local/lib. Because it is a separate, dynamically-loaded shared object, you may replace it with your own build oflibheifto satisfy LGPL §6 (the "replace the library" requirement). Upstream source: https://github.com/strukturag/libheif (release v1.23.0).
libheif loads codec backends as separate dynamically-loaded plugin .sos. The
container images install these from the distro package manager (apt/apk); each
retains its own upstream license and is redistributed unmodified:
| Library | Role | License (upstream) |
|---|---|---|
| libde265 | HEVC decode | LGPL-3.0-or-later |
| libdav1d | AV1 decode | BSD-2-Clause |
| libaom | AV1 dec/enc | BSD-2-Clause + patent grant |
| libx265 | HEVC encode | GPL-2.0-or-later |
All are loaded dynamically (separate .so, replaceable). Note: Xberg only
decodes HEIF/HEIC/AVIF, so the HEVC encoder libx265 (GPL) is not required
for Xberg's functionality; it is pulled in only as a default libheif plugin
dependency and can be dropped from the images to avoid shipping a GPL component.
- Feature: optional (
paddle-ocr,layout-detection,embeddings,reranker,auto-rotate, transcription). License: MIT. Linked dynamically (systemlibonnxruntime.so) in the musl/container builds; bundled per theort-bundledfeature (official Microsoft binaries) otherwise.