[package]
name = "probe-rs"
version.workspace = true
authors = [
"Noah Hüsser <yatekii@yatekii.ch>",
"Dominik Boehi <dominik.boehi@gmail.ch>",
"Jack Noppe <noppej@hotmail.com>",
]
edition.workspace = true
description = "A collection of on chip debugging tools to communicate with microchips."
documentation.workspace = true
homepage.workspace = true
repository.workspace = true
readme.workspace = true
categories = ["embedded", "hardware-support", "development-tools::debugging"]
keywords = ["embedded"]
license.workspace = true
[[bin]]
name = "probe-rs"
required-features = ["cli"]
[[bin]]
name = "cargo-flash"
required-features = ["cli"]
[[bin]]
name = "cargo-embed"
required-features = ["cli"]
[features]
default = ["builtin-targets", "rtt"]
gdb-server = ["dep:gdbstub", "dep:itertools"]
rtt = ["dep:kmp"]
cli = [
"gdb-server",
"dep:byte-unit",
"dep:capstone",
"dep:cargo_metadata",
"dep:clap",
"dep:colored",
"dep:defmt-decoder",
"dep:directories",
"dep:goblin",
"dep:indicatif",
"dep:is-terminal",
"dep:itm",
"dep:rand",
"dep:rustyline",
"dep:sanitize-filename",
"dep:termtree",
"dep:time",
"dep:tracing-appender",
"dep:tracing-subscriber",
"dep:git-version",
"dep:serde_json",
"dep:schemafy",
"dep:svd-parser",
"dep:figment",
"dep:crossterm",
"dep:ratatui",
"dep:bytesize",
"dep:textwrap",
"dep:addr2line",
]
builtin-targets = []
test = []
[dependencies]
anyhow = { workspace = true }
base64 = "0.21"
bincode = "1.3"
bitfield = "0.14"
bitvec = "1"
enum-primitive-derive = "0.3"
gimli = { version = "0.28", default-features = false, features = [
"endian-reader",
"read",
"std",
] }
hidapi = { version = "2", default-features = false, features = [
"linux-native",
] }
ihex = "3.0"
jep106 = "0.2"
kmp = { version = "0.1", optional = true }
once_cell = "1"
miniz_oxide = "0.7"
num-traits = "0.2"
object = { version = "0.32", default-features = false, features = [
"elf",
"read_core",
"std",
] }
paste = "1"
nusb = { version = "0.1.6" }
futures-lite = "2"
async-io = "2"
scroll = "0.12"
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"
static_assertions = "1"
svg = "0.15"
thiserror = { workspace = true }
tracing = { version = "0.1", features = ["log"] }
uf2-decode = "0.2"
rmp-serde = "1"
typed-path = "0.7"
bitflags = "2"
byteorder = "1"
espflash = { version = "2", default-features = false }
esp-idf-part = "0.4"
hexdump = { version = "0.1", optional = true }
probe-rs-target = { workspace = true }
gdbstub = { version = "0.7", optional = true }
itertools = { version = "0.12", optional = true }
addr2line = { version = "0.21", optional = true }
byte-unit = { version = "5", optional = true }
bytesize = { version = "1", optional = true }
capstone = { version = "0.11", optional = true }
cargo_metadata = { version = "0.18", optional = true }
clap = { version = "4", features = ["derive", "env"], optional = true }
colored = { version = "2", optional = true }
crossterm = { version = "<= 0.27", optional = true }
defmt-decoder = { version = "=0.3.10", features = ["unstable"], optional = true }
directories = { version = "5", optional = true }
dunce = { version = "1" }
figment = { version = "0.10", features = [
"toml",
"json",
"yaml",
"env",
], optional = true }
goblin = { version = "0.8", optional = true }
indicatif = { version = "0.17", optional = true }
insta = { version = "1", features = ["yaml", "filters"] }
is-terminal = { version = "0.4", optional = true }
itm = { version = "0.9.0-rc.1", default-features = false, optional = true }
parse_int = "0.6"
rand = { version = "0.8", optional = true }
rustyline = { version = "13", optional = true }
sanitize-filename = { version = "0.5", optional = true }
schemafy = { version = "0.6", optional = true }
serde_json = { version = "1", optional = true }
signal-hook = "0.3"
svd-parser = { version = "0.14", features = ["expand"], optional = true }
termtree = { version = "0.4", optional = true }
textwrap = { version = "0.16", optional = true }
time = { version = "0.3", default-features = false, features = [
"alloc",
"formatting",
"large-dates",
"macros",
"local-offset",
], optional = true }
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"json",
], optional = true }
tracing-appender = { version = "0.2", optional = true }
ratatui = { version = "0.26.0", default-features = false, features = [
"crossterm",
], optional = true }
[build-dependencies]
bincode = "1"
probe-rs-target = { workspace = true }
serde_yaml = "0.9"
git-version = { version = "0.3", optional = true }
[dev-dependencies]
pretty_env_logger = "0.5"
rand = "0.8"
serde_json = "1"
serde = "1"
clap = { version = "4", features = ["derive"] }
itm = { version = "0.9.0-rc.1", default-features = false }
pretty_assertions = "1"
test-case = "3"
termtree = "0.4"
[[package.metadata.release.pre-release-replacements]]
file = "../CHANGELOG.md"
search = "## \\[Unreleased\\]"
replace = "## [{{version}}]\n\nReleased {{date}}"
[[package.metadata.release.pre-release-replacements]]
file = "../CHANGELOG.md"
search = "\\[unreleased\\]: https://github.com/probe-rs/probe-rs/compare/v([a-z0-9.-]+)\\.\\.\\.master"
replace = "[unreleased]: https://github.com/probe-rs/probe-rs/compare/v{{version}}...master\n[{{version}}]: https://github.com/probe-rs/probe-rs/compare/v$1...v{{version}}"
[package.metadata.dist]
features = ["cli"]