marlin-binary-transfer 0.1.2

Host-side implementation of Marlin's Binary File Transfer Mark II protocol for SD-card upload to 3D printers.
Documentation
[package]
name = "marlin-binary-transfer"
version = "0.1.2"
edition = "2021"
rust-version = "1.75"
description = "Host-side implementation of Marlin's Binary File Transfer Mark II protocol for SD-card upload to 3D printers."
license = "MIT OR Apache-2.0"
repository = "https://github.com/J040M/marlin-binary-transfer"
documentation = "https://docs.rs/marlin-binary-transfer"
readme = "README.md"
keywords = ["marlin", "3d-printing", "serial", "protocol", "gcode"]
categories = ["network-programming", "embedded", "hardware-support"]
exclude = ["fuzz/"]

[features]
default = ["std"]
# Reserved for future no_std + alloc support. Currently a no-op placeholder:
# the crate uses std unconditionally in 0.1.x. Kept so callers don't have to
# change their feature lists when no_std lands. See plan stage 0.2.
std = []
heatshrink = ["dep:embedded-heatshrink"]
tokio = ["dep:tokio", "std"]
blocking = ["std"]
serial = ["dep:serialport", "blocking"]

[dependencies]
embedded-heatshrink = { version = "0.1", optional = true, features = ["std"] }
serialport = { version = "4", optional = true }
tokio = { version = "1", features = ["io-util", "macros", "time"], optional = true }
thiserror = "2"

# Guard transitive minimums for -Z minimal-versions. cfg(any()) never matches,
# so nothing here is compiled; the entries only float the resolver to versions
# that build on modern stable. pkg-config <0.3.9 uses #![feature(convert)].
[target.'cfg(any())'.dependencies]
pkg-config = "0.3.9"

[dev-dependencies]
criterion = "0.8"
proptest = "1"
tokio = { version = "1", features = ["macros", "rt", "test-util", "io-util", "time"] }

[[bench]]
name = "codec"
harness = false

[[example]]
name = "upload"
required-features = ["blocking", "serial"]

[[example]]
name = "inspect"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]