Firefox 157 will include JPEG XL by default on all platforms (groups.google.com)

313 points by yboris 11 hours ago

concinds 10 hours ago

With both Firefox and Chromium using jxl-rs (Rust-based), I wonder what Apple will do about the libjxl (C++) they already shipped. I know they're doing some memory-safety with Swift, but are they shipping any Rust in their platforms so far? I also wonder if anyone's done benchmark comparisons between both libs.

--

Also, I was under the impression that after backtracking, Chromium was relying on Mozilla to come up with a Rust port, but it seems it was the reverse. Good on Google Research.

https://hacks.mozilla.org/2026/08/intent-to-ship-jpeg-xl/

> So, we laid down a challenge to the JPEG XL team at Google Research: Build a safe, performant, compact, and compatible JPEG XL decoder in Rust, and we’ll ship it. That challenge was met; Google Research built jxl-rs, and it’s the core of our JPEG XL support in Firefox.

Snafuh 8 hours ago

Luca Versari, one of the devs between both libraries, has a performance dashboard to compare performance between the two https://jxl-rs-perf.lucaversari.it/

jxl-rs started to outperform the C++ library 2 months ago.

phire 7 hours ago

As much as I enjoy rust, there is no reason why a c++ library can’t be optimised to match the rust implementation.

It’s very rare that the actual performance benefits of rust implementations come from rust itself (though it does often push you to slightly better patterns). They usually come from the fact that rust implementations are usually a second (or 3rd, or 4th) iteration of the design, and the lessons learned help performance.

The other benefit of rust is that the stronger type system makes it easier to iterate and optimise without bugs creeping in. But once optimisations are implemented in rust, there isn’t that much pain to porting them back to c++, as long as someone cares enough to do so.

magicalist 7 hours ago

bawolff 5 hours ago

bastawhiz 2 hours ago

pkulak 2 hours ago

pibaker 5 hours ago

hn92726819 6 hours ago

rfgplk 7 hours ago

If he is one of the devs between both libraries, why is there a performance gap? Why not port the optimizations from one lib to the other? You can even create a pinned agent workflow that automatically translates optimizations between repos. Fairly trivial to implement actually.

AlotOfReading 7 hours ago

NewJazz 7 hours ago

saagarjha 6 hours ago

Shipping unsafe C++ is easier on Apple platforms than Rust. This seems unlikely to change anytime soon.

dlahoda 5 hours ago

I do not feel so.

Not only Rust does C API, but Objective-C the way it allows to call Apple platform and call Apple compatible functions back.

Also well integrated Rust programs(with platform calls and low level hardware access) are well compiled without Apple SDK.

3-4 kicking Rust solutions are easy findable in this area.

saagarjha 2 hours ago

josephg 4 hours ago

Is it? I wrote a pure rust iOS app recently. It uses native controls, and looks and feels great. iOS and iOS-sim are both very well supported targets by the rust compiler.

saagarjha 2 hours ago

deadbunny 8 hours ago

Apple is gonna do what apple wants.

llm_nerd 8 hours ago

What a funny tangent to go off on.

JXL was dead. Apple is who brought it back to life[1], and the only reason Chrome resurrected JXL, and now Firefox followed their path, is because Apple pushed JXL support to a billion plus devices.

I know people like complaining about Apple, but there's a "read the room" kind of moment where people just seem to either not know the context or are just knee jerking.

[1] Worth noting that Apple used the reference implementation, libjxl, and that project still remains the reference implementation with the Rust port being experimental (and of course Apple deployed JXL support over a year before the Rust port even existed). Maybe they'll switch to it at some point, but it's a bit premature to complain about.

spartanatreyu 4 hours ago

ChoosesBarbecue 6 hours ago

deadbunny 8 hours ago

cute_boi 8 hours ago

And their Safari browser is the worst. It doesn’t properly support PWAs or many other features because they want to maintain tight control over their App Store.

arkon_hn 7 hours ago

dlahoda 5 hours ago

Nition 31 minutes ago

I had assumed that JPEG XL was for JPEGs that are Xtra Large, since that's what XL means on clothing and pretty much everywhere else. But apparently not:

    'The etymology of the name "XL" is as follows: JPEG has called all its new standards since j2k something that starts with an X: XR, XT, XS (S for speed, since it is very fast and ultra-low-latency), and now XL. The L is supposed to mean Long term, since the goal is to make something that can replace the legacy JPEG and last as long as it did.'[1]
[1] https://news.ycombinator.com/item?id=22270148

Gander5739 10 hours ago

modeless 10 hours ago

This is awesome! All it took was a Rust implementation I guess?

throw0101a 8 hours ago

> All it took was a Rust implementation I guess?

And Apple including support in their default graphics library so every iOS (and Mac) supported it. (I use Firefox, but let's not pretend like they'd move the market on JXL support.)

rdsubhas 5 hours ago

JXL is one of the technologies that I hope we can fully transition over, i.e. in a couple of years nobody (even non-tech-savvy people) are sharing or copying or saving JPEGs.

yboris 10 hours ago

I'm curious how many HN people in 2026 have not yet heard of JPEG XL / jxl

etatoby 10 hours ago

I have only heard of it in passing. I wonder what it adds beyond Webp and Avif.

Macha 9 hours ago

The big feature over other new formats is compatibility with legacy JPEGs. You can (simplified) take the raw data from a legacy JPEG, reformat it as a JPEG XL, and achieve like 20-30% filesize savings without any actual re-encode, just better packaging of the same data. While converting them to AVIF or webp is a lossy re-encode, and so loses quality. I think it's really this feature that has people wanting it still despite the support for AVIF.

Also webp is IMO subjectively worse at the same file sizes than the other two. Dunno if there's any studies on it to back that up though. It also has a max image size that is plausibly a problem in some use cases (16k in one dimension) while AVIF is 65k per axis and JXL 1M per axis.

Sammi 9 hours ago

trompetenaccoun 2 hours ago

radicality 4 hours ago

Dwedit 3 hours ago

odo1242 9 hours ago

It compresses better than webp*, has really good progressive decoding (current encoders are able to encode the image such that the most important part of the image gets decoded first, and you only need the first ~20% of the image to display it as a thumbnail), and it's also a very flexible format (unlike avif) since it can also display lossless files* and display much larger images than AVIF can.

Also the compatibility with existing JPEG files that was mentioned below, unlike other formats you can losslessly convert a JPEG into a JXL without losing quality but saving file size in the process.

* it actually has better compression than PNG for this

* and potentially AVIF too, but this is debated

farlight 9 hours ago

bawolff 5 hours ago

mananaysiempre 8 hours ago

danielheath 8 hours ago

HappMacDonald 3 hours ago

For one of my projects the important advantage was "lossless compression similar to Webp and Avif (far better than PNG)", while ALSO supporting > 16kpx dimensions where Webp and Avif appear to max out

Tuna-Fish 9 hours ago

At the basic job of showing a normal 24bpp photo on screen, the differences between the formats are marginal.

jxl shines when you want to do anything even a little bit more complex. Support for lots more color formats, including fp ones. Support for an image with parts of it encoded losslessly, and parts with a lossy encoder. Great progressive decoding. And many more features.

adgjlsfhk1 an hour ago

spiralpolitik 6 hours ago

The big advantage is that you can convert from JPEG to JXL without re-encoding. This gives you an easy way to save 10%-20% in bandwidth for images you don’t have a lossless master for.

phkahler 9 hours ago

Higher bit-depth 10,12,16, float.

BoingBoomTschak 9 hours ago

Lossless: stronger than both (even though webp was pretty good there), especially AVIF that can't really do lossless RGB (must convert to YUV or incur a really bad compression ratio) yet relatively fast encoding.

Lossy: webp (VP8 I-frame format which means mandatory 4:2:0 chroma subsampling and ungodly smoothing) was never good, AVIF is better but only equal or worse at decent, visually transparent bitrates.

Another point worth mentioning: AV1/AVIF doesn't really have a standard encoder, libaom is a reference codec thus slow and not really interested in proper psy optimizations, SVT-AV1 is slowly getting there thanks to enthusiasts porting x264's good stuff to it but remains locked to 4:2:0 (lol). I won't even speak about the missed promises of FGS.

And finally, JXL's format has a lot of gizmos that make it more future proof as something to replace JPEG/PNG/GIF. Progressive decoding, lossless conversion from JPEG, very large limits (float bitdepth for HDR, image dimensions without tiling, unlimited channels incl. CMYK support) are good even when the encoder isn't yet supporting everything.

tosti 10 hours ago

I'm curious why a PDF with a jxl in it takes ages to load.

masfuerte 9 hours ago

If you're in a browser without native support maybe they implemented a jxl decoder in javascript.

pxoe 7 hours ago

Now I'd only wish browsers could come up with more convenient ways to get around when some websites and upload fields don't support jxl or some other image format, and would either do something about it automatically or offer some option to get around it (convert to jpeg or png and upload, or 'paste as an image' which would pretty much be the same as png conversion, or something)

xacky 8 hours ago

Will they add it to Firefox 115 for the remaining Windows 7/8 users or will you need a new operating system to add an image format?

Scharkenberg 4 hours ago

The remaining users on EoL platforms should move on to supported ones.

SV_BubbleTime 2 hours ago

Come on man! They’ve only had 10-15 years! It snuck right up on them.

ChoosesBarbecue 10 hours ago

ChrisArchitect 9 hours ago