[package]
edition = "2021"
rust-version = "1.85"
name = "smart-package-tracker"
version = "0.4.0"
build = false
exclude = [
"/.github",
"/target",
"/.claude",
"/.entire",
"/CLAUDE.md",
"/hello-entire.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Generate package tracking IDs, render them as Code 128 barcodes (PNG and SVG), and read them back out of images"
documentation = "https://docs.rs/smart-package-tracker"
readme = "README.md"
keywords = [
"barcode",
"code128",
"tracking",
"shipping",
"logistics",
]
categories = [
"encoding",
"multimedia::images",
"no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ferris007/smart-package-tracker"
resolver = "3"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
code128 = ["dep:code128"]
default = [
"std",
"os-rng",
"code128",
"qr",
"png",
"svg",
"scan",
]
os-rng = ["dep:getrandom"]
png = [
"dep:png",
"std",
]
qr = [
"dep:qrcode",
"std",
]
scan = ["code128"]
serde = ["dep:serde"]
std = [
"thiserror/std",
"code128?/std",
"serde?/std",
]
svg = []
[lib]
name = "smart_package_tracker"
path = "src/lib.rs"
[[example]]
name = "label"
path = "examples/label.rs"
required-features = [
"std",
"os-rng",
"code128",
"qr",
"png",
"svg",
"scan",
]
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "qr"
path = "tests/qr.rs"
[[test]]
name = "scan"
path = "tests/scan.rs"
[dependencies.code128]
version = "0.2.1"
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4"
optional = true
default-features = false
[dependencies.png]
version = "0.18"
optional = true
[dependencies.qrcode]
version = "0.14"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = [
"derive",
"alloc",
]
optional = true
default-features = false
[dependencies.thiserror]
version = "2.0"
default-features = false
[dev-dependencies.png]
version = "0.18"
[dev-dependencies.rqrr]
version = "0.10"
default-features = false
[profile.release]
lto = true