Archive / post

Blog

کروم بالاخره JPEG XL را پشتیبانی می‌کند؛ با دیکودری که از صفر با Rust نوشته شده

Ramin Eslami1 min readUpdated 07/10/2026
ChromeJPEG-XLRustweb-performanceimagesdeveloper-news
کروم بالاخره JPEG XL را پشتیبانی می‌کند؛ با دیکودری که از صفر با Rust نوشته شده

تیم کروم در بلاگ Chrome for Developers اعلام کرد که از Chrome 155 پشتیبانی از دیکود فرمت تصویری JPEG XL (پسوند .jxl) به مرورگر اضافه می‌شود؛ فرمتی که سال‌ها توسعه‌دهنده‌ها درخواستش را داشتند.

خلاصه خبر

  • به گفته‌ی گوگل، JPEG XL حدود ۳۰ تا ۵۰ درصد فشرده‌سازی بهتری نسبت به JPEG دارد و فشرده‌سازی بدون افت (lossless)، پشتیبانی داخلی از HDR و تبدیل بدون افت JPEGهای قدیمی را هم ارائه می‌کند.
  • دیکودر کروم بر پایه‌ی jxl-rs است، یک پیاده‌سازی کاملاً Rust؛ چون دیکودرهای تصویر یکی از پرخطرترین سطوح حمله در هر مرورگری هستند.
  • برای اینکه سرعت فدای امنیت نشود، یک لایه‌ی انتزاع SIMD به اسم jxl_simd ساخته‌اند تا کد unsafe فقط در چند نقطه‌ی محدود و بازبینی‌شده بماند. طبق گفته‌ی خودشان، با فازینگ و بازبینی کد با AI هیچ باگ امنیت حافظه‌ای در کل تاریخچه‌ی پیاده‌سازی پیدا نشده است.
  • توصیه‌ی گوگل این است که هم AVIF و هم JPEG XL را امتحان کنید؛ JPEG XL بیشتر برای عکس‌های باکیفیت، فشرده‌سازی lossless و جاهایی که دیکود تدریجی (progressive) مهم است به کار می‌آید.
  • تیم کروم می‌گوید این تصمیم بر اساس درخواست‌های مداوم توسعه‌دهنده‌ها، به‌خصوص در پروژه‌ی Interop، گرفته شده است.

نظر من

به نظرم این خبر دو درس دارد. اول اینکه صدای توسعه‌دهنده‌ها واقعاً اثر دارد؛ JPEG XL یک بار عملاً از کروم کنار گذاشته شده بود و حالا برگشته. دوم، و مهم‌تر: گوگل نشان داد می‌شود کد حساس و پرفورمنس‌محور را با Rust نوشت بدون اینکه از سرعت کم شود. برای ما که سایت و فروشگاه می‌سازیم، فعلاً عجله‌ای برای کنار گذاشتن WebP و AVIF نیست؛ تا وقتی همه‌ی مرورگرها پشتیبانی کامل ندارند، با تگ <picture> و fallback کار کنید. ولی اگر با عکس‌های باکیفیت سروکار دارید (فروشگاه، پورتفولیو، عکاسی)، همین حالا وقت تستش در پایپلاین تصویرتان است.

منبع: Chrome for Developers – Shipping JPEG XL in Chrome