Sonata

Chrome 155 вернул поддержку JPEG XL с декодером на Rust

image source

Начиная с версии 155, Chrome снова поддерживает декодирование изображений JPEG XL (.jxl). Формат уменьшает размер файлов на 30–50 % по сравнению с JPEG и поддерживает сжатие без потерь, HDR и lossless-транскодирование JPEG.

JPEG XL лучше всего подходит для фотографий, сжатия с высокой точностью или без потерь и случаев, где нужно мелкозернистое прогрессивное декодирование. Разработчики советуют начать использовать .jxl в проектах.

Декодеры изображений — частая цель атак на браузеры. Реализации на C++ исторически страдали от чтения за пределами памяти, переполнения кучи и Use-After-Free.

Поэтому в Chrome используют jxl-rs — декодер на Rust. Модель безопасности построена на песочнице и глубокой защите по «правилу двух» (The Rule of Two).

Производительность jxl-rs опирается на оптимизации libjxl. Реализацию проверили фаззингом и ИИ-анализом кода — ошибок безопасности памяти не обнаружили.

Для SIMD-инструкций без unsafe-кода применили функцию Rust target_feature_11 и слой абстракции jxl_simd по образцу C++-библиотеки Highway. Небезопасные операции ограничены малым числом проверенных мест.

источник

Загрузка страницы