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