JPEG XL 是新一代圖片壓縮格式,主打比傳統 JPEG 小三成到五成的檔案大小,同時支援無損壓縮、HDR 與無損的 JPEG 轉檔。Chrome 團隊宣布從 Chrome 155 版開始內建解碼支援,回應開發者多年來的呼聲。
Chrome 這次採用的解碼器叫 jxl-rs,是完全用 Rust 寫成的 JPEG XL 解碼器,而非傳統 C/C++ 函式庫。團隊打造了 jxl_simd 這個 SIMD 抽象層,運用 Rust 剛穩定的 target_feature_11 功能,讓程式不寫 unsafe 也能用硬體加速運算。
圖片解碼器長期是瀏覽器最容易被攻擊的部分,C/C++ 寫的解碼器一直是資安漏洞常客。Chrome 團隊強調 jxl-rs 開發至今沒出現任何記憶體安全漏洞。不少開發者討論 JPEG XL 會不會因此追上 AVIF,成為網頁圖片新主流。
這則新聞比較偏瀏覽器底層工程,跟寫網頁應用程式的日常不太直接相關,不過背後的概念值得知道:選用 Rust 這種語言,是因為它能在編譯階段就擋掉很多記憶體錯誤,這也是現在許多資安課程會提到 Rust 的原因。對於想理解程式語言如何影響軟體安全的學生來說,是個實際案例。
瀏覽器開源資安