-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathCargo.toml
More file actions
134 lines (112 loc) · 3.64 KB
/
Copy pathCargo.toml
File metadata and controls
134 lines (112 loc) · 3.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[package]
name = "exr"
description = "Read and write OpenEXR files without any unsafe code"
keywords = ["exr", "openexr", "file", "binary", "io"]
categories = ["encoding", "filesystem", "graphics", "multimedia"]
version = "1.74.2"
edition = "2018"
authors = ["johannesvollmer <contact@johannesvollmer.com>"]
repository = "https://github.com/johannesvollmer/exrs"
readme = "README.md"
license = "BSD-3-Clause"
exclude = [ "specification/*", "specification/**", "tests/images/*", "tests/images/**" ]
rust-version = "1.83.0"
[badges]
maintenance = { status = "actively-developed" }
[lib]
path = "src/lib.rs"
test = true
doctest = true
bench = true
doc = true
plugin = false
proc-macro = false
[dependencies]
lebe = "^0.5.2" # generic binary serialization
half = "2.1.0" # 16 bit float pixel data type
bit_field = "^0.10.1" # exr file version bit flags
miniz_oxide = "^0.8.0" # zip compression for pxr24
smallvec = "^1.7.0" # make cache-friendly allocations TODO profile if smallvec is really an improvement!
rayon-core = { version = "^1.11.0", optional = true } # threading for parallel compression
zune-inflate = { version = "^0.2.3", default-features = false, features = ["zlib"] } # zip decompression, faster than miniz_oxide
pulp = "0.22.3" # used for runtime SIMD dispatch
num-complex = "0.4.6" # pins pulps own dependency, pulp wants 0.4.4 but calls for Complex::ZERO/ONE/I; consts added in 0.4.6
[dev-dependencies]
image = { version = "0.25.2", default-features = false, features = ["png"] } # used to convert one exr to some pngs
bencher = "0.1.5"
walkdir = "2.3.2" # automatically test things for all files in a directory
rand = "0.8.5" # used for fuzz testing
rayon = "1.5.3" # run tests for many files in parallel
[features]
default = ["rayon"]
# rayon is used for parallel compression
rayon = ["dep:rayon-core"]
# Opt-in gates for the DWA SIMD tier unit tests
# (in src/compression/dwa/discrete_cosine_transform/test.rs).
# Intentionally opt-in: each must be built and run under a CPU or emulator exposing
# the requested tier, e.g.
# `cargo test --lib --features avx2-tests -- avx2`
avx2-tests = []
sse2-tests = []
# Call the DWA DCT avx2/sse2/autovectorized kernels directly,
# bypassing runtime dispatch, for the comparison benchmark.
# Meaningless under emulation (timings won't reflect real hardware)
# `cargo bench --features simd-benches --bench dct`
simd-benches = []
[[example]]
name = "7_write_raw_blocks"
required-features = ["rayon"]
[[example]]
name = "8_read_raw_blocks"
required-features = ["rayon"]
[[bench]]
name = "read"
harness = false
required-features = ["rayon"]
[[bench]]
name = "profiling"
harness = false
required-features = ["rayon"]
[[bench]]
name = "write"
harness = false
required-features = ["rayon"]
[[bench]]
name = "pixel_format_conversion"
harness = false
required-features = ["rayon"]
[[bench]]
name = "dct"
harness = false
required-features = ["simd-benches"]
# recommended release settings for max runtime performance
[profile.release]
opt-level = 3
lto = true
debug = false
debug-assertions = false
codegen-units = 1
# test with fast runtime speed and slow build speed
[profile.dev]
incremental = true
opt-level = 3
debug-assertions = true
overflow-checks = true
debug = true
lto = true
# test with fast runtime speed and moderate build speed
[profile.test]
incremental = true
opt-level = 3
debug-assertions = true
overflow-checks = true
debug = true
lto = true
# bench with fastest runtime speed
[profile.bench]
opt-level = 3
debug-assertions = false
overflow-checks = false
lto = true
debug = true
codegen-units = 1