Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AVIF support to resize_image() #1347

Open
wants to merge 2 commits into
base: next
Choose a base branch
from
Open

Conversation

BezPowell
Copy link
Contributor

IMPORTANT: Please do not create a Pull Request adding a new feature without discussing it first.

The place to discuss new features is the forum: https://zola.discourse.group/
If you want to add a new feature, please open a thread there first in the feature requests section.

Sanity check:

  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Code changes

(Delete or ignore this section for documentation changes)

  • Are you doing the PR on the next branch?

If the change is a new feature or adding to/changing an existing one:

  • Have you created/updated the relevant documentation page(s)?

This pr adds support for AVIF images to the resize_image() function, closing #1202. As image does not currently allow setting the speed and quality parameters via the write_to() method this manually creates an encoder and writes the result out to a file.

There are 2 caveats to this implementation:

  1. The speed parameter is hardcoded. This currently uses the same default as the cavif-rs crate (which image uses for avif encoding). This encoding speed can be very slow, so it might be nice to allow changing this. I did not add it as another argument to resize_image() as I felt it would start to get unwieldy. Perhaps eventually this could be overriden in config.toml?
  2. AVIFs quality levels, while accepting the same range as jpeg are very different. The default value of 75 actually results in a file slighty bigger than the equivalent jpeg. I do not know how AVIF SSIM values compare to jpeg for different quality settings, but it might be nice to choose a different default for AVIF that has a similar SSIM to jpegs 75 quality level.

@BezPowell
Copy link
Contributor Author

Apologies for the duplicate PRs. Looks like when I first created my avif branch I accidentally based it on master, rather than new. Should all be clean now hopefully.

@BezPowell
Copy link
Contributor Author

I have been doing some tests on quality vs filesize for AVIF files, and it looks like somewhere in the region of quality 50 would be a more sensible default value for AVIF to roughly correlate to jpeg at 75. I could not get any SSIM analysis tools to work on my machine with AVIF, or losslessly convert my generated AVIF files to something like png, so this comparison was done by eyeballing images and is rather unscientific.

If someone else can manage to get a proper test setup sorted, I would be very interested to know what their thoughts are regarding a sensible default quality level. I don't think we should have the same default level for jpeg and avif as the scales really are not comparable and could put people off using the new format (as AVIF at 75 is often bigger than even baseline jpeg, though of course higher quality), but would be interested to hear other people's thoughts on the matter.

Another interesting side effect of my tests was me realising just how good mozjpeg is at retaining quality at smaller filesizes while still retaining good compression speed. AVIF does seem to outperform it in terms of quality vs filesize, but takes much longer to compress.

@Keats
Copy link
Collaborator

Keats commented Feb 12, 2021

It looks like it doesn't compile on any of the platforms we support due to the nasm version required though...

@BezPowell
Copy link
Contributor Author

It looks like it doesn't compile on any of the platforms we support due to the nasm version required though...

That's a bit of a pain. I'm working on Fedora here, so didn't notice as they usually ship pretty up to date versions of packages. Shall we have to shelve this one for now then?
I'm not sure what Ubuntu's policy is for individual package updates, but that could mean waiting for the next LTS?

@Keats
Copy link
Collaborator

Keats commented Feb 15, 2021

I think it would be better to wait a bit yes, even mac and windows are failing on CI which means most users will encounter the same issue when building from source.

@imjasonmiller
Copy link
Contributor

Hi!

I was going through this pull request and thought I could perhaps locally merge it with the latest commit to have .webp and .avif support ― considering GitHub's CI seems to support Ubuntu 20.04 Focal Fossa, which meets nasm >= 2.14.02 per this comment.

I noticed that RESIZED_FILENAME does not contain avif in this pull request, but webp does. Is this supposed to be the case?

lazy_static! {
pub static ref RESIZED_FILENAME: Regex =
Regex::new(r#"([0-9a-f]{16})([0-9a-f]{2})[.](jpg|png)"#).unwrap();
}

lazy_static! {
pub static ref RESIZED_FILENAME: Regex =
Regex::new(r#"([0-9a-f]{16})([0-9a-f]{2})[.](jpg|png|webp)"#).unwrap();
}

@Keats
Copy link
Collaborator

Keats commented Apr 9, 2021

We need easy support on all 3 platforms. If it can be disabled as per the issue then we could enable it on linux if it's nasm is common enough. Zola is already hard enough to build because of libsass, let's not add more roadblocks

@imjasonmiller
Copy link
Contributor

We need easy support on all 3 platforms. If it can be disabled as per the issue then we could enable it on linux if it's nasm is common enough. Zola is already hard enough to build because of libsass, let's not add more roadblocks

Oh, no, I wasn't implying that @Keats, as that seems troublesome. I was looking into getting it to work locally for that reason.

I noticed webp was added to RESIZED_FILENAME for the next branch, but avif in this case was not? I thought I'd ask if that was intentional.

@Keats
Copy link
Collaborator

Keats commented Apr 9, 2021

Oh it's probably just a merge issue. Webp is still supported

@Jieiku
Copy link
Contributor

Jieiku commented May 4, 2022

Ubuntu 22.04 is out now, does this resolve the previous version issue?

AVIF is really nice!

@extua
Copy link

extua commented Jun 12, 2024

Following on from #1347 (comment) Ubuntu 24.04 is out now, containing nasm 2.16.01, and it can be used on Github Actions

@Keats
Copy link
Collaborator

Keats commented Jun 12, 2024

How about Windows? I've seen some issues on other crates with nasm there

@Keats Keats force-pushed the next branch 2 times, most recently from 8b1a413 to 67c2fe0 Compare June 24, 2024 21:04
@Jieiku
Copy link
Contributor

Jieiku commented Aug 25, 2024

I would like to check if this works ok on Windows now so that it can be merged.

I will try building Zola on Windows today.

@BezPowell
Copy link
Contributor Author

Since I opened this pull request, things have moved on somewhat in the image codec space. Chrome are dragging their heals adding jpeg-xl support, but even then I'm not sure avif is necessarily worth adding to Zola.

Quite a few tests are now showing that, while it has a good file size to quality ratio, the encode and decode speeds are exponentially slower than other formats; possibly outweighing any gain in transfer size on low powered devices. I'll put a few links at the bottom of this comment for others to read through, but it really looks like that, in real world scenarios, good old fashioned image codecs such as jepg (and now jpeg-xl) actually work better than those newer ones based upon video codecs, such as webp and avif. Google's benchmarks for webp, and possibly to a lesser extent the recent ones for avif, do seem to be based on carefully cherry picked datasets and competing encoders to show the new codecs in the best light.

There was a brilliant article graphing the filesize vs ssim quality for various formats that showed jpeg-xl as the clear winner for all but the smallest of images, but I can't seem to find it.

@Jieiku
Copy link
Contributor

Jieiku commented Aug 25, 2024

Avif and for that matter AV1 are still relatively new, but AVIF does have excellent browser support now:

https://caniuse.com/?search=avif

JXL is seemingly only supported on Safari...

https://caniuse.com/?search=jxl

When I searched about when jxl was created I found December 2019, for whatever reason nobody seems to want to adopt it, not only Chrome.

I also found an article that makes jpeg xl look good, but with it being unsupported in browsers I will probably just stick with avif for now: https://tonisagrista.com/blog/2023/jpegxl-vs-avif/

Thanks for the info and the links, I honestly did not even know jpegxl existed.

EDIT: He actually made a blog article about why jpegxl is not supported as well: https://tonisagrista.com/blog/2022/jpeg-xl-chrome/

@Jieiku
Copy link
Contributor

Jieiku commented Aug 26, 2024

I tried to rebase this pull request on the current next branch of Zola but a lot has changed with Zola since then and I do not yet know Rust or Zola well enough to bring this pull request up to date.

next...Jieiku:zola:next

@Keats
Copy link
Collaborator

Keats commented Aug 26, 2024

I think Chrome might not have a choice if iPhones start to shoot in JXL
I agree JXL would be better, but until Chrome/Firefox supports it it's going to be less than useful for a web tool...

@Jieiku
Copy link
Contributor

Jieiku commented Aug 26, 2024

I am attempting to figure out the issues with rebasing this pull request. I have resolved some of the errors and think I am close.

EDIT: got it to compile, now I just need to make sure it actually works!

next...Jieiku:zola:next

@Jieiku
Copy link
Contributor

Jieiku commented Aug 26, 2024

The build on Windows had Zero issues (click to expand):


Admin@Win10-PC MINGW64 ~
$ git clone https://github.com/Jieiku/zola
Cloning into 'zola'...
remote: Enumerating objects: 27437, done.
remote: Counting objects: 100% (939/939), done.
remote: Compressing objects: 100% (667/667), done.
remote: Total 27437 (delta 335), reused 784 (delta 231), pack-reused 26498 (from 1)
Receiving objects: 100% (27437/27437), 76.53 MiB | 46.84 MiB/s, done.
Resolving deltas: 100% (15784/15784), done.

Admin@Win10-PC MINGW64 ~
$ cd zola

Admin@Win10-PC MINGW64 ~/zola (master)
$ git checkout next
Switched to a new branch 'next'
branch 'next' set up to track 'origin/next'.

Admin@Win10-PC MINGW64 ~/zola (next)
$ cargo build
   Compiling proc-macro2 v1.0.85
   Compiling unicode-ident v1.0.12
   Compiling cfg-if v1.0.0
   Compiling once_cell v1.19.0
   Compiling autocfg v1.3.0
   Compiling windows_x86_64_msvc v0.52.5
   Compiling memchr v2.7.4
   Compiling ppv-lite86 v0.2.17
   Compiling serde v1.0.203
   Compiling siphasher v0.3.11
   Compiling version_check v0.9.4
   Compiling itoa v1.0.11
   Compiling getrandom v0.2.15
   Compiling log v0.4.21
   Compiling rand_core v0.6.4
   Compiling phf_shared v0.11.2
   Compiling scopeguard v1.2.0
   Compiling smallvec v1.13.2
   Compiling jobserver v0.1.31
   Compiling crossbeam-utils v0.8.20
   Compiling hashbrown v0.14.5
   Compiling equivalent v1.0.1
   Compiling rand_chacha v0.3.1
   Compiling lock_api v0.4.12
   Compiling windows_x86_64_msvc v0.48.5
   Compiling stable_deref_trait v1.2.0
   Compiling ryu v1.0.18
   Compiling cc v1.0.99
   Compiling rand v0.8.5
   Compiling windows-targets v0.52.5
   Compiling phf_shared v0.10.0
   Compiling num-traits v0.2.19
   Compiling windows-sys v0.52.0
   Compiling thiserror v1.0.61
   Compiling syn v1.0.109
   Compiling windows-targets v0.48.5
   Compiling either v1.12.0
   Compiling typenum v1.17.0
   Compiling indexmap v2.2.6
   Compiling windows-sys v0.48.0
   Compiling quote v1.0.36
   Compiling crossbeam-epoch v0.9.18
   Compiling syn v2.0.66
   Compiling phf_generator v0.11.2
   Compiling crossbeam-deque v0.8.5
   Compiling phf_generator v0.10.0
   Compiling spin v0.9.8
   Compiling regex-syntax v0.8.4
   Compiling parking_lot_core v0.9.10
   Compiling rayon-core v1.12.1
   Compiling phf_codegen v0.11.2
   Compiling aho-corasick v1.1.3
   Compiling slab v0.4.9
   Compiling ahash v0.8.11
   Compiling new_debug_unreachable v1.0.6
   Compiling litemap v0.7.3
   Compiling simd-adler32 v0.3.7
   Compiling libc v0.2.155
   Compiling byteorder v1.5.0
   Compiling pin-project-lite v0.2.14
   Compiling writeable v0.5.5
   Compiling winapi-util v0.1.8
   Compiling bytes v1.6.0
   Compiling zerocopy v0.7.34
   Compiling minimal-lexical v0.2.1
   Compiling serde_json v1.0.117
   Compiling ring v0.17.8
   Compiling nom v7.1.3
   Compiling itertools v0.12.1
   Compiling anyhow v1.0.86
   Compiling icu_locid_transform_data v1.5.0
   Compiling adler v1.0.2
   Compiling winapi v0.3.9
   Compiling paste v1.0.15
   Compiling miniz_oxide v0.7.3
   Compiling regex-automata v0.4.7
   Compiling rayon v1.10.0
   Compiling same-file v1.0.6
   Compiling socket2 v0.5.7
   Compiling num-integer v0.1.46
   Compiling ahash v0.7.8
   Compiling untrusted v0.9.0
   Compiling time-core v0.1.2
   Compiling precomputed-hash v0.1.1
   Compiling percent-encoding v2.3.1
   Compiling synstructure v0.13.1
   Compiling futures-core v0.3.30
   Compiling icu_properties_data v1.5.0
   Compiling fnv v1.0.7
   Compiling num-conv v0.1.0
   Compiling arrayvec v0.7.4
   Compiling mio v0.8.11
   Compiling powerfmt v0.2.0
   Compiling bumpalo v3.16.0
   Compiling deranged v0.3.11
   Compiling num-bigint v0.4.5
   Compiling walkdir v2.5.0
   Compiling tokio v1.38.0
   Compiling hashbrown v0.13.2
   Compiling regex v1.10.5
   Compiling unicase v2.7.0
   Compiling generic-array v0.14.7
   Compiling crc32fast v1.4.2
   Compiling ucd-trie v0.1.6
   Compiling icu_normalizer_data v1.5.0
   Compiling write16 v1.0.0
   Compiling aligned-vec v0.5.0
   Compiling lazy_static v1.4.0
   Compiling bitflags v2.5.0
   Compiling utf16_iter v1.0.5
   Compiling dtoa v1.0.9
   Compiling utf8_iter v1.0.4
   Compiling httparse v1.9.3
   Compiling built v0.7.3
   Compiling v_frame v0.3.8
   Compiling dtoa-short v0.3.5
   Compiling ptr_meta_derive v0.1.4
   Compiling flate2 v1.0.30
   Compiling num-rational v0.4.2
   Compiling parse-zoneinfo v0.3.1
   Compiling serde_derive v1.0.203
   Compiling zerofrom-derive v0.1.4
   Compiling yoke-derive v0.7.4
   Compiling zerovec-derive v0.10.2
   Compiling phf_macros v0.11.2
   Compiling displaydoc v0.2.4
   Compiling thiserror-impl v1.0.61
   Compiling icu_provider_macros v1.5.0
   Compiling rav1e v0.7.1
   Compiling phf v0.11.2
   Compiling cssparser-macros v0.6.1
   Compiling profiling-procmacros v1.0.15
   Compiling http v0.2.12
   Compiling form_urlencoded v1.2.1
   Compiling parking_lot v0.12.3
   Compiling string_cache_codegen v0.5.2
   Compiling phf_codegen v0.10.0
   Compiling tracing-core v0.1.32
   Compiling rkyv v0.7.44
   Compiling rustls v0.21.12
   Compiling pkg-config v0.3.30
   Compiling zerofrom v0.1.4
   Compiling pin-utils v0.1.0
   Compiling bytemuck v1.16.0
   Compiling futures-io v0.3.30
   Compiling futures-task v0.3.30
   Compiling outref v0.1.0
   Compiling yoke v0.7.4
   Compiling mac v0.1.1
   Compiling futures-sink v0.3.30
   Compiling bitflags v1.3.2
   Compiling tracing v0.1.40
   Compiling futf v0.1.5
   Compiling futures-util v0.3.30
   Compiling markup5ever v0.12.1
   Compiling simd-abstraction v0.7.1
   Compiling zerovec v0.10.2
   Compiling parcel_selectors v0.26.5
   Compiling chrono-tz-build v0.3.0
   Compiling onig_sys v69.8.1
   Compiling pest v2.7.10
   Compiling profiling v1.0.15
   Compiling cssparser v0.33.0
   Compiling hashbrown v0.12.3
   Compiling sct v0.7.1
   Compiling rustls-webpki v0.101.7
   Compiling av1-grain v0.2.3
   Compiling ptr_meta v0.1.4
   Compiling num-derive v0.4.2
   Compiling arg_enum_proc_macro v0.3.4
   Compiling rkyv_derive v0.7.44
   Compiling tinystr v0.7.6
   Compiling icu_collections v1.5.0
   Compiling tokio-util v0.7.11
   Compiling maybe-rayon v0.1.1
   Compiling simd_helpers v0.1.0
   Compiling bstr v1.9.1
   Compiling icu_locid v1.5.0
   Compiling aho-corasick v0.7.20
   Compiling noop_proc_macro v0.3.0
   Compiling unic-common v0.9.0
   Compiling bitstream-io v2.4.1
   Compiling weezl v0.1.8
   Compiling try-lock v0.2.5
   Compiling unic-char-range v0.9.0
   Compiling utf-8 v0.7.6
   Compiling libm v0.2.8
   Compiling quick-error v2.0.1
   Compiling matches v0.1.10
   Compiling base64 v0.21.7
   Compiling glob v0.3.1
   Compiling seahash v4.1.0
   Compiling imgref v1.10.1
   Compiling tendril v0.4.3
   Compiling data-url v0.1.1
   Compiling loop9 v0.1.5
   Compiling icu_provider v1.5.0
   Compiling unic-char-property v0.9.0
   Compiling globset v0.4.14
   Compiling want v0.3.1
   Compiling libwebp-sys v0.9.5
   Compiling unic-ucd-version v0.9.0
   Compiling pest_meta v2.7.10
   Compiling chrono-tz v0.9.0
   Compiling icu_locid_transform v1.5.0
   Compiling h2 v0.3.26
   Compiling base64-simd v0.7.0
   Compiling http-body v0.4.6
   Compiling rgb v0.8.37
   Compiling html5ever v0.27.0
   Compiling icu_properties v1.5.0
   Compiling string_cache v0.8.7
   Compiling const-str-proc-macro v0.3.2
   Compiling avif-serialize v0.8.1
   Compiling time-macros v0.2.18
   Compiling futures-channel v0.3.30
   Compiling fxhash v0.2.1
   Compiling zune-inflate v0.2.54
   Compiling fdeflate v0.3.4
   Compiling flume v0.11.0
   Compiling minify-html-common v0.0.2
   Compiling phf v0.10.1
   Compiling half v2.4.1
   Compiling bytecount v0.6.8
   Compiling zune-core v0.4.12
   Compiling icu_normalizer v1.5.0
   Compiling httpdate v1.0.3
   Compiling bit_field v0.10.2
   Compiling doc-comment v0.3.3
   Compiling byteorder-lite v0.1.0
   Compiling vlq v0.5.1
   Compiling jpeg-decoder v0.3.1
   Compiling idna v1.0.0
   Compiling color_quant v1.1.0
   Compiling lebe v0.5.2
   Compiling pure-rust-locales v0.8.1
   Compiling tower-service v0.3.2
   Compiling hyper v0.14.29
   Compiling exr v1.72.0
   Compiling url v2.5.1
   Compiling time v0.3.36
   Compiling tiff v0.9.1
   Compiling image-webp v0.1.2
   Compiling gif v0.13.1
   Compiling parcel_sourcemap v2.1.1
   Compiling zune-jpeg v0.4.11
   Compiling nom_locate v4.2.0
   Compiling ravif v0.11.7
   Compiling png v0.17.13
   Compiling tokio-rustls v0.24.1
   Compiling const-str v0.3.2
   Compiling serde_spanned v0.6.6
   Compiling toml_datetime v0.6.6
   Compiling pest_generator v2.7.10
   Compiling chrono v0.4.38
   Compiling ignore v0.4.22
   Compiling unic-ucd-segment v0.9.0
   Compiling parse-js v0.17.0
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.6
   Compiling cssparser-color v0.1.0
   Compiling qoi v0.4.1
   Compiling nom-tracable-macros v0.9.1
   Compiling lasso v0.7.2
   Compiling dashmap v5.5.3
   Compiling filetime v0.2.23
   Compiling itertools v0.10.5
   Compiling quick-xml v0.17.2
   Compiling quick-xml v0.31.0
   Compiling data-encoding v2.6.0
   Compiling linked-hash-map v0.5.6
   Compiling winnow v0.6.13
   Compiling codemap v0.1.3
   Compiling deunicode v1.6.0
   Compiling rustc-hash v1.1.0
   Compiling mime v0.3.17
   Compiling pulldown-cmark v0.11.0
   Compiling pathdiff v0.2.1
   Compiling line-wrap v0.2.0
   Compiling slug v0.1.5
   Compiling plist v1.6.1
   Compiling grass_compiler v0.13.3
   Compiling yaml-rust v0.4.5
   Compiling humansize v2.1.3
   Compiling minidom v0.12.0
   Compiling minify-js v0.5.6
   Compiling nom-tracable v0.9.1
   Compiling lightningcss v1.0.0-alpha.57
   Compiling image v0.25.1
   Compiling digest v0.10.7
   Compiling pest_derive v2.7.10
   Compiling globwalk v0.9.1
   Compiling unic-segment v0.9.0
   Compiling hyper-rustls v0.24.2
   Compiling toml_edit v0.22.14
   Compiling onig v6.4.0
   Compiling rust-stemmers v1.2.0
   Compiling serde_urlencoded v0.7.1
   Compiling bincode v1.3.3
   Compiling rustls-pemfile v1.0.4
   Compiling unic-langid-impl v0.9.5
   Compiling winreg v0.50.0
   Compiling csv-core v0.1.11
   Compiling encoding_rs v0.8.34
   Compiling sync_wrapper v0.1.2
   Compiling any_ascii v0.1.7
   Compiling cpufeatures v0.2.12
   Compiling pulldown-cmark-escape v0.11.0
   Compiling ipnet v2.9.0
   Compiling roxmltree v0.20.0
   Compiling unsafe-libyaml v0.2.11
   Compiling maplit v1.0.2
   Compiling webpki-roots v0.25.4
   Compiling svg_metadata v0.5.1
   Compiling ammonia v4.0.0
   Compiling reqwest v0.11.27
   Compiling serde_yaml v0.9.34+deprecated
   Compiling tera v1.20.0
   Compiling toml v0.8.14
   Compiling sha2 v0.10.8
   Compiling csv v1.3.0
   Compiling elasticlunr-rs v3.0.2
   Compiling unic-langid v0.9.5
   Compiling syntect v5.2.0
   Compiling nom-bibtex v0.5.0
   Compiling quickxml_to_serde v0.6.0
   Compiling gh-emoji v1.0.8
   Compiling atty v0.2.14
   Compiling lexical-sort v0.3.1
   Compiling num-format v0.4.4
   Compiling termcolor v1.4.1
   Compiling unicode-segmentation v1.11.0
   Compiling base64 v0.22.1
   Compiling relative-path v1.9.3
   Compiling errors v0.1.0 (C:\Users\Admin\zola\components\errors)
   Compiling winapi-build v0.1.1
   Compiling winapi v0.2.8
   Compiling getrandom v0.1.16
   Compiling anstyle v1.0.7
   Compiling kernel32-sys v0.2.2
   Compiling ws2_32-sys v0.2.1
   Compiling cfg-if v0.1.10
   Compiling utf8parse v0.2.2
   Compiling net2 v0.2.39
   Compiling anstyle-parse v0.2.4
   Compiling anstyle-wincon v3.0.3
   Compiling anstyle-query v1.1.0
   Compiling generic-array v0.12.4
   Compiling iovec v0.1.4
   Compiling colorchoice v1.0.1
   Compiling is_terminal_polyfill v1.70.0
   Compiling byte-tools v0.3.1
   Compiling mutate_once v0.1.1
   Compiling anstream v0.6.14
   Compiling block-padding v0.1.5
   Compiling kamadak-exif v0.5.5
   Compiling rand_core v0.5.1
   Compiling toml v0.5.11
   Compiling strsim v0.11.1
   Compiling clap_lex v0.7.1
   Compiling heck v0.5.0
   Compiling clap_builder v4.5.7
   Compiling rand_chacha v0.2.2
   Compiling block-buffer v0.7.3
   Compiling digest v0.8.1
   Compiling clap_derive v4.5.5
   Compiling mime_guess v2.0.4
   Compiling winres v0.1.12
   Compiling crossbeam-channel v0.5.13
   Compiling grass v0.13.3
   Compiling lazycell v1.3.0
   Compiling opaque-debug v0.2.3
   Compiling fake-simd v0.1.2
   Compiling sha-1 v0.8.2
   Compiling rand v0.7.3
   Compiling bytes v0.4.12
   Compiling file-id v0.2.1
   Compiling notify v6.1.1
   Compiling ctrlc v3.4.4
   Compiling zola v0.19.2 (C:\Users\Admin\zola)
   Compiling open v5.1.4
   Compiling notify-debouncer-full v0.3.1
   Compiling clap v4.5.7
   Compiling clap_complete v4.5.5
   Compiling webp v0.3.0
   Compiling miow v0.2.2
   Compiling mio v0.6.23
   Compiling mio-extras v2.0.6
   Compiling ws v0.9.2
   Compiling minify-html v0.15.0
   Compiling libs v0.1.0 (C:\Users\Admin\zola\components\libs)
   Compiling utils v0.1.0 (C:\Users\Admin\zola\components\utils)
   Compiling console v0.1.0 (C:\Users\Admin\zola\components\console)
   Compiling config v0.1.0 (C:\Users\Admin\zola\components\config)
   Compiling markdown v0.1.0 (C:\Users\Admin\zola\components\markdown)
   Compiling imageproc v0.1.0 (C:\Users\Admin\zola\components\imageproc)
   Compiling link_checker v0.1.0 (C:\Users\Admin\zola\components\link_checker)
   Compiling content v0.1.0 (C:\Users\Admin\zola\components\content)
   Compiling search v0.1.0 (C:\Users\Admin\zola\components\search)
   Compiling templates v0.1.0 (C:\Users\Admin\zola\components\templates)
   Compiling site v0.1.0 (C:\Users\Admin\zola\components\site)
    Finished `dev` profile [unoptimized] target(s) in 1m 37s
warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.17.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`

Admin@Win10-PC MINGW64 ~/zola (next)
$

I could really use some help testing this to make sure I did not mess anything up. If I had to guess I would say I have less than 48 hours of actually working with Rust, I have read the rust book twice but have not actually used rust much.

@MTRNord
Copy link
Contributor

MTRNord commented Nov 7, 2024

the image 0.25.x version now has support enabled for avif by default. Any chance to do that upgrade instead?

@Keats
Copy link
Collaborator

Keats commented Nov 7, 2024

It should be a not-too-hard PR to next I think? We're already using that version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants