[package]
edition = "2024"
name = "ecu_diagnostics"
version = "0.107.3"
authors = ["Ashcon Mohseninia <ashconm@outlook.com>"]
build = false
exclude = [
"examples/*",
"build.rs",
"ecu_diagnostics.hpp",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A rust crate for ECU diagnostic servers and communication APIs"
readme = "README.md"
keywords = [
"socketcan",
"kwp2000",
"uds",
"j2534",
"slcan",
]
license = "GPL-3.0-only"
repository = "https://github.com/rnd-ash/ecu_diagnostics"
[package.metadata.docs.rs]
all-features = true
targets = [
"x86_64-unknown-linux-gnu",
"i686-pc-windows-msvc",
"x86_64-apple-darwin",
]
[badges.maintenance]
status = "actively-developed"
[features]
default = [
"passthru",
"socketcan",
"slcan",
]
passthru = [
"dep:libloading",
"dep:shellexpand",
"dep:winreg",
"dep:serde_json",
"dep:j2534_rust",
]
pcan-usb = [
"dep:libloading",
"dep:winapi",
"dep:enum-repr",
]
serde = [
"dep:serde",
"bitflags/serde",
"automotive_diag/serde",
]
slcan = ["dep:serialport"]
socketcan = [
"dep:socketcan-isotp",
"dep:socketcan",
]
[lib]
name = "ecu_diagnostics"
path = "src/lib.rs"
[dependencies.automotive_diag]
version = "0.1.28"
[dependencies.bitflags]
version = "2.13.0"
[dependencies.enum-repr]
version = "0.2.6"
optional = true
[dependencies.j2534_rust]
version = "1.5.0"
optional = true
[dependencies.libloading]
version = "0.9.0"
optional = true
[dependencies.log]
version = "0.4.32"
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0.150"
optional = true
[dependencies.serialport]
version = "4.9.0"
optional = true
[dependencies.strum]
version = "0.28.0"
[dependencies.strum_macros]
version = "0.28.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.winapi]
version = "0.3.9"
optional = true
[dev-dependencies.env_logger]
version = "0.11.10"
[target.'cfg(target_os = "linux")'.dependencies.socketcan]
version = "=3.5.0"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.socketcan-isotp]
version = "1.0.2"
optional = true
[target."cfg(unix)".dependencies.shellexpand]
version = "3.1.2"
optional = true
[target."cfg(windows)".dependencies.winreg]
version = "0.10.1"
optional = true