[package]
edition = "2024"
rust-version = "1.89"
name = "threemf2"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "3MF (3D Manufacturing Format) file format support"
homepage = "https://github.com/vshashi01/threemf2"
readme = "README.md"
keywords = [
"3MF",
"CAD",
"slicer",
"triangle",
"mesh",
]
categories = [
"encoding",
"rendering::data-formats",
]
license = "MIT or Apache-2.0"
repository = "https://github.com/vshashi01/threemf2"
[package.metadata.cargo-all-features]
max_combination_size = 3
[features]
default = [
"io-write",
"io-memory-optimized-read",
"io-lazy-read",
"write",
"memory-optimized-read",
]
io-lazy-read = [
"dep:once_cell",
"io-memory-optimized-read",
]
io-memory-optimized-read = [
"dep:zip",
"dep:thiserror",
"memory-optimized-read",
]
io-speed-optimized-read = [
"dep:zip",
"dep:thiserror",
"speed-optimized-read",
]
io-write = [
"dep:zip",
"dep:thiserror",
"write",
]
memory-optimized-read = [
"dep:instant-xml",
"dep:lexical-core",
]
speed-optimized-read = [
"dep:serde-roxmltree",
"dep:serde",
"dep:lexical-core",
]
write = [
"dep:instant-xml",
"dep:lexical-core",
]
[lib]
name = "threemf2"
path = "src/lib.rs"
[[example]]
name = "beamlattice_write"
path = "examples/beamlattice_write.rs"
required-features = ["io-write"]
[[example]]
name = "boolean_write"
path = "examples/boolean_write.rs"
required-features = ["io-write"]
[[example]]
name = "builder_beamlattice_example"
path = "examples/builder_beamlattice_example.rs"
required-features = ["io-write"]
[[example]]
name = "builder_example"
path = "examples/builder_example.rs"
required-features = ["io-write"]
[[example]]
name = "core-no-default-features"
path = "examples/core-no-default-features.rs"
[[example]]
name = "io_memory_optimized_read"
path = "examples/io_memory_optimized_read.rs"
required-features = ["io-memory-optimized-read"]
[[example]]
name = "io_speed_optimized_read"
path = "examples/io_speed_optimized_read.rs"
required-features = ["io-speed-optimized-read"]
[[example]]
name = "query_example"
path = "examples/query_example.rs"
required-features = ["io-memory-optimized-read"]
[[example]]
name = "string_extraction"
path = "examples/string_extraction.rs"
required-features = ["io-lazy-read"]
[[example]]
name = "unpack"
path = "examples/unpack.rs"
required-features = ["io-lazy-read"]
[[example]]
name = "write"
path = "examples/write.rs"
required-features = ["io-write"]
[[test]]
name = "beamlattice_io"
path = "tests/beamlattice_io.rs"
[[test]]
name = "boolean_io"
path = "tests/boolean_io.rs"
[[test]]
name = "core_io"
path = "tests/core_io.rs"
[[test]]
name = "production_io"
path = "tests/production_io.rs"
[[test]]
name = "roundtrip"
path = "tests/roundtrip.rs"
[dependencies.instant-xml]
version = "0.6.0"
optional = true
[dependencies.lexical-core]
version = "1.0.6"
optional = true
[dependencies.once_cell]
version = "1.21.3"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
[dependencies.serde-roxmltree]
version = "0.10.0"
optional = true
[dependencies.thiserror]
version = "2.0.3"
optional = true
[dependencies.zip]
version = "8.4.0"
features = ["deflate"]
optional = true
default-features = false
[dev-dependencies.pretty_assertions]
version = "1.4.1"
[dev-dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dev-dependencies.serde-roxmltree]
version = "0.10.0"
[dev-dependencies.serde_json]
version = "1.0.140"