probe-rs 0.25.0

A collection of on chip debugging tools to communicate with microchips.
Documentation
[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

# Don't include test binaries in published crate
exclude = ["tests/"]

[features]
default = ["builtin-targets", "debug"]
gdb-server = ["dep:gdbstub"]

# Enable all built in targets.
builtin-targets = ["dep:bincode", "dep:serde_yaml", "dep:probe-rs-target"]

debug = [
    "dep:gimli",
    "dep:typed-path",
    "dep:parse_int",
    "dep:rmp-serde",
    "dep:dunce",
]

# Enable helpers for testing
test = []

[dependencies]
anyhow.workspace = true
docsplay.workspace = true
thiserror.workspace = true
probe-rs-target.workspace = true

bincode = { version = "1", optional = true }
bitfield = "0.17"
bitvec = "1"
hidapi = { version = "2", default-features = false, features = [
    "linux-native",
] }
ihex = "3.0"
itertools = "0.13"
jep106 = "0.2"
flate2 = "1.0"
object = { version = "0.36", default-features = false, features = [
    "elf",
    "read_core",
    "std",
] }
nusb = "0.1.12"
futures-lite = { version = "2", default-features = false }
async-io = "2"
scroll = "0.12"
serialport = { version = "4.6.0", default-features = false, features = ["usbportinfo-interface"] }
svg = "0.18"
tracing = "0.1"
uf2-decode = "0.2"
espflash = { version = "3", default-features = false }
parking_lot = "0.12.2"
zerocopy = { version = "0.8.0", features = ["derive"] }

serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"

# optional
hexdump = { version = "0.1", optional = true }

# gdb server
gdbstub = { version = "0.7", optional = true }

# debug
gimli = { version = "0.31", default-features = false, features = [
    "endian-reader",
    "read",
    "std",
], optional = true }
typed-path = { version = "0.10", optional = true }
parse_int = { version = "0.6", optional = true }
rmp-serde = { version = "1", optional = true }
dunce = { version = "1", optional = true }

[build-dependencies]
probe-rs-target = { workspace = true, optional = true }

bincode = { version = "1", optional = true }
serde_yaml = { version = "0.9", optional = true }

[dev-dependencies]
pretty_env_logger = "0.5"
fastrand = "2.1"
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"
test-log = { version = "0.2.16", features = ["trace"] }
termtree = "0.5"
insta = { version = "1.38", default-features = false, features = ["yaml"] }

[[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.docs.rs]
features = ["builtin-targets", "debug", "gdb-server"]

# Define a new cfg flag for docs.rs
rustdoc-args = ["--cfg", "probers_docsrs"]

[lints]
workspace = true