You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Another topic we should discuss ahead of 1.0 is what formats we want to include. Now that there's image-extras and decoding hooks, we can remove formats from this main crate without totally removing support if a small number of people are still relying on them.
We also have the option of making some formats behind a feature flag but not part of the default feature set.1
Looking at individual formats...
dds: Already moved to image-extras.
farbfeld: Another we should probably move to image-extras. I haven't come across anyone using this format who didn't add it because we did.
exr: This format is implemented via an external crate and has a relatively heavy dependency tree. We've gotten very little in the way of complaints / issues about this one, so I'm not sure how much it gets used? Another candidate to remove.
pnm: Not sure about this one. There's definitely a lot of references to PNM in older software. But I don't have a good sense of usage. And Split PNM ImageFormat into subformats for PBM, PGM, etc. #2841 raised the question of how to properly handle subformats which doesn't seem like it has a good option besides treating them as five different formats.
qoi: I'd somewhat lean towards keeping this one simply because it isn't too complex and I like the format. But maybe doesn't need to be enabled by default.
avif: Our current codecs have a pretty heavy dependency tree, and the decoder isn't enabled by default yet (since we're still waiting to switch to a Rust implementation). I think this could make sense behind a feature flag.
tiff: I think we'll want to keep support. Though as we add more functionality upstream like ZStandard compression and such, we might want to consider a feature flag?
bmp / gif / hdr / ico / jpeg / png / tga / webp: I think we want to keep all these.
Footnotes
I've been reluctant to allow disabled-by-defaults formats in the past because I feared it would lead to pressure to add tons of obscure/rarely used formats. But I think that's less likely now that there's other avenues for them. ↩
Another topic we should discuss ahead of 1.0 is what formats we want to include. Now that there's
image-extrasand decoding hooks, we can remove formats from this main crate without totally removing support if a small number of people are still relying on them.We also have the option of making some formats behind a feature flag but not part of the default feature set.1
Looking at individual formats...
dds: Already moved to
image-extras.farbfeld: Another we should probably move to
image-extras. I haven't come across anyone using this format who didn't add it because we did.exr: This format is implemented via an external crate and has a relatively heavy dependency tree. We've gotten very little in the way of complaints / issues about this one, so I'm not sure how much it gets used? Another candidate to remove.
pnm: Not sure about this one. There's definitely a lot of references to PNM in older software. But I don't have a good sense of usage. And Split PNM ImageFormat into subformats for PBM, PGM, etc. #2841 raised the question of how to properly handle subformats which doesn't seem like it has a good option besides treating them as five different formats.
qoi: I'd somewhat lean towards keeping this one simply because it isn't too complex and I like the format. But maybe doesn't need to be enabled by default.
avif: Our current codecs have a pretty heavy dependency tree, and the decoder isn't enabled by default yet (since we're still waiting to switch to a Rust implementation). I think this could make sense behind a feature flag.
tiff: I think we'll want to keep support. Though as we add more functionality upstream like ZStandard compression and such, we might want to consider a feature flag?
bmp / gif / hdr / ico / jpeg / png / tga / webp: I think we want to keep all these.
Footnotes
I've been reluctant to allow disabled-by-defaults formats in the past because I feared it would lead to pressure to add tons of obscure/rarely used formats. But I think that's less likely now that there's other avenues for them. ↩