-
Notifications
You must be signed in to change notification settings - Fork 73
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
Feature gate capabilities: image, ndarray, rayon, transfer-syntax-registry adapters #238
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
April 29, 2022 12:57
bb97167
to
ce38bc5
Compare
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
May 13, 2022 08:12
ce38bc5
to
7c11be5
Compare
Enet4
added
the
breaking change
Hint that this may require a major version bump on release
label
May 18, 2022
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
July 14, 2022 18:55
53ebe39
to
836e34d
Compare
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
September 23, 2022 20:27
836e34d
to
d7ba0b7
Compare
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
October 25, 2022 15:05
d7ba0b7
to
a7fbb33
Compare
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
January 29, 2023 13:29
a7fbb33
to
2a37bbe
Compare
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
2 times, most recently
from
February 4, 2023 10:01
b295793
to
2d3b10a
Compare
- [encoding] make jpeg-decoder/rayon opt-in - [pixeldata] add ndarray and image features, not default anymore! - APIs depending on them are feature gated - configure docs.rs to include them anyway - add default feature rayon, so that the use of rayon can be removed entirely Note: Rust >= 1.60 required due to feature syntax
- include testing pixeldata without default features - test project with default + commonly useful features - for now `image` and `ndarray` - use actions-rs/cargo@v1 consistently
- s/check/test/
fix build with no default arguments
- add rayon feature, enabled by default - import conditionally based on features - [pixeldata] refer to rayon feature there
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
March 5, 2023 15:24
2d3b10a
to
c824889
Compare
Enet4
added
C-encoding
Crate: dicom-encoding
C-transfer-syntax
Crate: dicom-transfer-syntax-registry
labels
Apr 27, 2023
Enet4
changed the title
[pixeldata] Feature gate capabilities: image, ndarray, rayon
Feature gate capabilities: image, ndarray, rayon
Apr 27, 2023
- exclude jpeg and rle decoding by default for faster and smaller builds (they are not needed unless for pixel data manipulation) - Include feature when building documentation at docs.rs so that supported TSes appear as implemented - [pixeldata] explicitly require native encodings from ts registry
- expand root docs - explain that encapsulated pixel data adaptors are disabled by default - mention that inventory-based registry is not enabled by default - show table of support for encapsulated pixel data
- mention that a native implementation is available by enabling the right Cargo feature
In the standard since 2022c
Enet4
force-pushed
the
imp/pixeldata/feature-gate
branch
from
April 27, 2023 18:53
46c6e05
to
678ebf9
Compare
- `test_native_decoding_pixel_data_rle_8bit_1frame_vec`
Enet4
changed the title
Feature gate capabilities: image, ndarray, rayon
Feature gate capabilities: image, ndarray, rayon, transfer-syntax adapters
Apr 27, 2023
Enet4
changed the title
Feature gate capabilities: image, ndarray, rayon, transfer-syntax adapters
Feature gate capabilities: image, ndarray, rayon, transfer-syntax-registry adapters
Apr 27, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-lib
Area: library
breaking change
Hint that this may require a major version bump on release
C-pixeldata
Crate: dicom-pixeldata
C-transfer-syntax
Crate: dicom-transfer-syntax-registry
enhancement
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These changes make it so that
image
andndarray
support in thepixeldata
crate become opt-in, and make it possible for projects to exclude the use ofrayon
entirely.At transfer-syntax-registry, the built-in native decoders (JPEG and RLE) are now opt-in, and need to be enabled. This provides faster and more efficient builds for projects which do not need to manipulate pixel data.
This is a breaking change because some methods and resources that originally were always available are put behind Cargo features. Depends on Rust 1.60+, which is below the current minimum version known to work (1.63).
Summary
rayon
Cargo feature, maps tojpeg-decoder/rayon
, making it opt-inimage
andndarray
dependencies optional, gated behind features with the same namesrayon
feature so that Rayon can be removed entirelynative
feature opt-in, always added indicom-pixeldata