sdsforge 0.5.0

CLI and desktop app for generating, converting, validating, and rendering chemical safety data sheets in MHLW/JIS Z 7253 structured formats.
Documentation
[package]
name = "sdsforge"
version = "0.5.0"
edition = "2021"
description = "CLI and desktop app for generating, converting, validating, and rendering chemical safety data sheets in MHLW/JIS Z 7253 structured formats."
license = "MIT OR Apache-2.0"
keywords = ["sds", "safety-data-sheet", "ghs", "llm", "cli"]
categories = ["command-line-utilities", "text-processing"]
readme = "README.md"
repository = "https://github.com/kent-tokyo/sdsforge"
homepage = "https://github.com/kent-tokyo/sdsforge"
documentation = "https://docs.rs/sdsforge"
# sdsforge-core/chematic-normalization is always enabled (see below), and its
# effective dependency graph requires Rust 1.85 (chematic's own MSRV).
rust-version = "1.85"

[[bin]]
name = "sdsforge"
path = "src/main.rs"

[dependencies]
sdsforge-core = { path = "../sdsforge_core", version = "0.6.0", features = ["chematic-normalization"] }
serde = { workspace = true }
serde_json = { workspace = true }
# YAML input for `sdsforge generate`. `serde_yaml` is archived (deprecated
# upstream since 2024); serde_norway is the actively maintained fork
# (drop-in-compatible API) -- CLI-only, sdsforge-core has no YAML dependency.
serde_norway = "0.9"
tokio = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
clap = { version = "4.5", features = ["derive", "env"] }
walkdir = "2"
futures = "0.3"
reqwest = { workspace = true }
dirs = "6"
toml = "1"
indicatif = "0.18"
eframe = "0.34"
rfd = "0.15"
tempfile = "3"
chrono = { version = "0.4", features = ["clock"] }
dotenvy = "0.15"

[dev-dependencies]
wiremock = "0.6"