-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
109 lines (97 loc) · 3.14 KB
/
Copy pathCargo.toml
File metadata and controls
109 lines (97 loc) · 3.14 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
[package]
name = "lib3mf"
version = "0.1.6"
edition = "2024"
authors = ["lib3mf_rust contributors"]
description = "Pure Rust implementation for 3MF (3D Manufacturing Format) parsing and writing"
license = "MIT"
repository = "https://github.com/telecos/lib3mf_rust"
homepage = "https://github.com/telecos/lib3mf_rust"
documentation = "https://docs.rs/lib3mf"
readme = "README.md"
keywords = ["3mf", "3d", "manufacturing", "3dprinting", "opc"]
categories = ["parser-implementations", "encoding"]
exclude = [
".github/",
"*.sh",
"*.py",
"benches/",
"docs/",
"examples/",
"fuzz/",
"test_suites/",
"test_files/",
"tests/",
"tools/"
]
[features]
default = ["mesh-ops", "polygon-ops"]
# Enable this feature in CI to run tests that require external test_suites folder
ci = []
# Enable cryptographic support for SecureContent extension decryption
crypto = ["dep:rsa", "dep:aes-gcm", "dep:base64", "dep:flate2", "dep:sha1", "dep:sha2", "dep:sha1_10", "dep:sha2_10"]
# Enable advanced mesh operations (volume, AABB, validation, subdivision, slicing)
mesh-ops = ["dep:parry3d", "dep:nalgebra"]
# Enable polygon operations (boolean operations, triangulation)
polygon-ops = ["dep:clipper2", "dep:earcutr"]
[dependencies]
zip = { version = "8", default-features = false, features = [
"deflate-flate2-zlib-rs",
] }
quick-xml = "0.42.0"
thiserror = "2.0"
# Cryptographic dependencies for SecureContent decryption (optional, enabled via 'crypto' feature)
rsa = { version = "0.9", optional = true }
aes-gcm = { version = "0.11", optional = true }
base64 = { version = "0.23", optional = true }
flate2 = { version = "1.1", optional = true }
sha1 = { version = "0.11", optional = true }
sha2 = { version = "0.11", optional = true }
sha1_10 = { package = "sha1", version = "0.10", optional = true }
sha2_10 = { package = "sha2", version = "0.10", optional = true }
urlencoding = "2.1"
# Geometry dependencies for advanced mesh operations (optional, enabled via 'mesh-ops' feature)
parry3d = { version = "0.29", optional = true }
nalgebra = { version = "0.35", optional = true }
# Polygon operation dependencies (optional, enabled via 'polygon-ops' feature)
clipper2 = { version = "0.6", optional = true }
earcutr = { version = "0.5", optional = true }
[dev-dependencies]
tempfile = "3.27"
zip = { version = "8", default-features = false, features = [
"deflate-flate2-zlib-rs",
] }
walkdir = "2.5"
libtest-mimic = "0.8"
criterion = "0.8"
proptest = "1.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
image = "0.25"
[[example]]
name = "calculate_normals"
required-features = ["mesh-ops"]
[[example]]
name = "mesh_analysis"
required-features = ["mesh-ops"]
[[example]]
name = "mesh_slicing_demo"
required-features = ["mesh-ops"]
[[example]]
name = "mesh_subdivision"
required-features = ["mesh-ops"]
[[example]]
name = "polygon_clipping_demo"
required-features = ["polygon-ops"]
[[example]]
name = "polygon_triangulation_demo"
required-features = ["polygon-ops"]
[[test]]
name = "conformance_individual"
path = "tests/conformance/individual.rs"
harness = false
[[bench]]
name = "parse_benchmark"
harness = false
[lints.rust]
unsafe_code = "forbid"