1[package]
2name = "exr"
3description = "Read and write OpenEXR files without any unsafe code"
4keywords = ["exr", "openexr", "file", "binary", "io"]
5categories = ["encoding", "filesystem", "graphics", "multimedia"]
6
7version = "1.73.0"
8edition = "2018"
9authors = ["johannesvollmer <johannes596@t-online.de>"]
10
11repository = "https://github.com/johannesvollmer/exrs"
12readme = "README.md"
13license = "BSD-3-Clause"
14exclude = [ "specification/*", "specification/**", "tests/images/*", "tests/images/**" ]
15rust-version = "1.61.0"
16
17[badges]
18maintenance = { status = "actively-developed" }
19
20[lib]
21path = "src/lib.rs"
22test = true
23doctest = true
24bench = true
25doc = true
26plugin = false
27proc-macro = false
28
29[dependencies]
30lebe = "^0.5.2" # generic binary serialization
31half = "2.1.0" # 16 bit float pixel data type
32bit_field = "^0.10.1" # exr file version bit flags
33miniz_oxide = "^0.8.0" # zip compression for pxr24
34smallvec = "^1.7.0" # make cache-friendly allocations TODO profile if smallvec is really an improvement!
35rayon-core = "^1.11.0" # threading for parallel compression TODO make this an optional feature?
36zune-inflate = { version = "^0.2.3", default-features = false, features = ["zlib"] } # zip decompression, faster than miniz_oxide
37
38[dev-dependencies]
39image = { version = "0.25.2", default-features = false, features = ["png"] } # used to convert one exr to some pngs
40
41bencher = "0.1.5"
42walkdir = "2.3.2" # automatically test things for all files in a directory
43rand = "0.8.5" # used for fuzz testing
44rayon = "1.5.3" # run tests for many files in parallel
45
46
47[[bench]]
48name = "read"
49harness = false
50
51[[bench]]
52name = "profiling"
53harness = false
54
55[[bench]]
56name = "write"
57harness = false
58
59[[bench]]
60name = "pixel_format_conversion"
61harness = false
62
63
64# recommended release settings for max runtime performance
65[profile.release]
66opt-level = 3
67lto = true
68debug = false
69debug-assertions = false
70codegen-units = 1
71
72# test with fast runtime speed and slow build speed
73[profile.dev]
74incremental = true
75opt-level = 3
76debug-assertions = true
77overflow-checks = true
78debug = true
79lto = true
80
81# test with fast runtime speed and moderate build speed
82[profile.test]
83incremental = true
84opt-level = 3
85debug-assertions = true
86overflow-checks = true
87debug = true
88lto = true
89
90# bench with fastest runtime speed
91[profile.bench]
92opt-level = 3
93debug-assertions = false
94overflow-checks = false
95lto = true
96debug = true
97codegen-units = 1
98