Skip to content

Conversation

@Shnatsel
Copy link
Member

Disabling the rayon feature now actually removes the rayon dependency.

Previously exr would always pull in rayon and enable multithreading unconditionally.

Upstream johannesvollmer/exrs#242 was fixed in git a long time ago but only shipped to crates.io now.

It is debatable whether this constitutes a semver break, so I'm OK with merging it both before and after #2640.

@fintelia
Copy link
Contributor

I don't think this is semver breaking? We gate some items behind the rayon feature, but won't be enabled just because the rayon dependency is included in the build

@Shnatsel
Copy link
Member Author

Previously multi-threading for exr was always available, but now it will only be available if the rayon feature is enabled on the image crate.

That will not break any builds but it is a change in behavior.

@197g 197g merged commit c7f68be into image-rs:main Nov 11, 2025
32 checks passed
@197g
Copy link
Member

197g commented Nov 11, 2025

It's probably fine in terms of SemVer, I'm more worried about an exr silently introducing rayon and breaking targets like wasm32 than the inverse. We should probably add it to the release notes in #2640 just as an explicit documentation of the change in behavior, afterall we also have very clear guidance in just enabling the feature.

@johannesvollmer
Copy link
Contributor

johannesvollmer commented Nov 15, 2025

exr previously ran on wasm32 - even with rayon as dependency. it will fallback to single threaded on wasm. we have a pipeline that build the library and runs tests on wasm successfully :)

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.

4 participants