TL;DR
probe-run
is getting deprecated in favor ofprobe-rs
(github, website)- Migration steps are simple. [Skip to migration steps]
probe-rs
offers most features ofprobe-run
and many more
Letter
Dear community,
We'd like to share an important development in the embedded Rust development landscape. It is with a sense of commitment to unifying our community that we announce the deprecation of our tool, probe-run
, in favor of the powerful and feature-rich alternative, probe-rs
.
This shift is not a step backward, but rather a stride forward, aligning with the rapid evolution of the embedded Rust ecosystem. When we initially introduced probe-run
, there was a distinct lack of alternatives. However, today, the ecosystem has not only caught up but has also surpassed our expectations.
Our decision to migrate to probe-rs
is the result of a collaborative effort, and we'd like to express our appreciation to the probe-rs
maintainers for their invaluable support and collaboration in making this transition possible. This collaboration is going way back, since the probe-rs
library has been a core component of probe-run
for a long time.
Rest assured, our commitment to defmt
remains steadfast. Over the past few weeks, we've been hard at work to ensure that defmt
support in probe-rs
matches the standard you've come to expect from probe-run
.
We will not archive the probe-run
immediately, but keep it open for a few more weeks in case you have questions regarding the migration.
We extend our heartfelt gratitude to all of you who have been part of the probe-run
journey. Your feedback, contributions, and support have been invaluable.
Sincerely, Johann and the Knurling-rs team
Migration steps
In most cases the migration is as simple as installing probe-rs
and exchanging the probe-run
command with probe-rs run
:
1.) Install probe-rs
$ cargo install probe-rs --features cli
2.) Switch to probe-rs run
in .cargo/config.toml
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
-runner = "probe-run --chip nRF52840_xxAA"
+runner = "probe-rs run --chip nRF52840_xxAA"
These two steps should cover most cases.
There are a few command-line flags which changed or got removed.
Changed:
probe-run --erase-all
becomesprobe-rs run --chip-erase
probe-run --list-chips
becomesprobe-rs chip list
probe-run --list-probes
becomesprobe-rs list
probe-run --no-flash
becomesprobe-rs attach
Removed:
-
no
--json
flag to output logs as structured data
As far as we see this feature is used relatively little. Therefore we decided to not block the deprecation on this. If you rely on this feature please contact us. -
no
--host-log-format
(but--log-format
)
Theprobe-rs
logging system works differently thanprobe-run
's, therefore the--host-log-format
does not make sense. The--log-format
flag to change the format of thedefmt
-messages exists though. -
no
--shorten-paths
Also this is a bit more of a niche feature, so we decided to not block the deprecations on this. -
no
--measure-stack
, but that was a no-op
The--measure-stack
flag was used to estimate the stack usage of a program. Since a few months this was a no-op, because we refactored the estimation mechanism to be blazingly fast, so it could just always run. The stack usage estimation mechanism is not implemented inprobe-rs
yet, but it will likely follow.