Skip to content

Conversation

@WorldofJARcraft
Copy link
Contributor

LLEXT extensions can occupy a significant amout of disk space. This commit reduces this by adding optional LZ4 compression. At build time, llext's are compressed using the lz4 command utility. To this end, the compression ratio is configurable via Kconfig and compression statistics can be displayed.
At run time, extensions are decompressed using zephyr's lz4 module, relying on the LZ4 frame API.
Extensions are forwarded to the decompressor in chunks to reduce the required memory during decompression, with configurable chunk size. Decompressed extensions live in allocated memory.

@WorldofJARcraft WorldofJARcraft force-pushed the llext-compression branch 7 times, most recently from 9f6d231 to 845ea7f Compare October 31, 2025 17:02
LLEXT extensions can occupy a significant amout of disk space. This commit reduces this by adding optional LZ4 compression. At build time, llext's are compressed using the lz4 command utility. To this end, the compression ratio is configurable via Kconfig and compression statistics can be displayed. At run time, extensions are decompressed using zephyr's lz4 module, relying on the LZ4 frame API. Extensions are forwarded to the decompressor in chunks to reduce the required memory during decompression, with configurable chunk size. Decompressed extensions live in allocated memory. Signed-off-by: Eric Ackermann <eric.ackermann@cispa.de>
@WorldofJARcraft WorldofJARcraft marked this pull request as ready for review October 31, 2025 17:46
@zephyrbot zephyrbot added area: llext Linkable Loadable Extensions area: Build System area: Tests Issues related to a particular existing or missing test labels Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: Build System area: llext Linkable Loadable Extensions area: Tests Issues related to a particular existing or missing test

3 participants