defmt-parser
Parsing library for defmt format strings
1.0.0
25M downloads/mo
#1894 most downloaded on crates.io
knurling-rs/defmt
What this package is like to depend on
Last release 1 years ago
01 Apr 2025
Release timing varies
gaps range from 4 weeks to 13 months
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
13 releases · first in 2020
0 releases in the last 12 months
see the full history below
Release timeline
13 releases · Nov 2020 to Apr 2025
2021
2022
2023
2024
2025
2026
Releases
latest 13-
1.0.001 Apr 2025Release notes
Open source →- [#909] First 1.0 stable release :tada:
- [#938] Emit
option_env!("DEFMT_LOG")so rustc depinfo can track it - [#935] Add note in book's setup chapter to clarify staticlib setup
- [#914] Add cargo-deny as a CI action to check crate security and licensing
-
1.0.0-rc.108 Jan 2025 pre-releaseNothing published for this version
-
0.4.127 Nov 2024 -
0.4.027 Nov 2024Release notes
Open source →- [#899] Just a major version bump to stop it being used by older defmt versions.
-
0.3.407 Feb 2024 -
0.3.305 May 2023Release notes
Open source →- [#744]
defmt-parser: Clean and simplify - [#743]
defmt-parser: Simplify tests withrstest - [#740] Snapshot tests for
core::net - [#739]
xtask: Clean up - [#737]
panic-probe: Addhard_fault()for use indefmt::panic_handler - [#733]
defmt: Add formatting forcore::netwith theip_in_corefeature - [#603]
defmt: Raw pointers now print as0x1234instead of1234 - [#536]
defmt-parser: Switch to using an enum for errors, and add some help text pointing you to the defmt docs if you use the wrong type specifier in a format string.
- [#744]
-
0.3.229 Mar 2023 -
0.3.110 Mar 2022Release notes
Open source →Added
- [#662]
#[derive(Format)]now accepts attribute fields to format fields using theDebug2Formatadapter instead of aFormatimplementation. - [#661] Add tests for Cell types
- [#656] Implement
defmt::FormatforCellandRefCell - [#630] Add test instructions to README.md
Changed
- [#659] mark extern::acquire() and extern::release() as unsafe. this is not a breaking change; this is an internal API
- [#640] use crate critical-section in defmt-rtt
- [#634] update ELF parsing dependencies
- [#633] make RTT buffer size configurable
- [#626] Make errror message more meaningful in case of version-mismatch
- [#662]
-
0.3.010 Nov 2021Release notes
Open source →- [#618] Support #[ignore] attribute in defmt_test
- [#621] Readme Diagram: Replace duplicate defmt-itm with defmt-rtt
- [#617] Add display hint to output
u64as ISO8601 time - [#620] Tidy up: remove unused code and dependencies
- [#619] Update all crates to rust edition 2021! 🎉
- [#610]
defmt-print: Log if malformed frame gets skipped - [#547] Migration guide
v0.2.xtov0.3.0 - [#604] defmt-test:
#[cfg(test)]the#[defmt_test::tests]module - [#616] Update user guide part of the book
- [#615] Document how to deal with backward compatibility breakage
- [#614] Bugfix: decoder breaks with pipe symbol
- [#605] Properly handle the
offpseudo-level in presence of nested logging directives - [#611] Fix
cargo doc-warnings - [#608]
decoder: Fix thatdefmt::println!shows leading space when timestamps are disabled - [#601] Move crate
defmttodefmt/ - [#600] Run snapshot & backcompat tests in dev mode only
- [#519] Target-side
env_logger-like env filter - [#592] xtask: add backward compability test
- [#598]
defmt-print: Recover from decoding-errors - [#569] Add defmt
println!macro - [#580] Structure
defmt::export - [#594] panic-probe: use UDF instruction on nested panics
- [#591] Remove timestamps from snapshot test
- [#585] Add xtask option to run a single snapshot test by name
- [#589] Implement
Formatfor arrays of any length - [#587] Tweak inline attributes to remove machine code duplication
- [#574] Refactor rtt [1/2]
- [#584] Remove outdated doc "you may only call write! once"
- [#581] Add impl for
alloc::Layout - [#579] defmt-rtt: fix check for blocking RTT
- [#577] Fix typo in
cfgof encoding-feature-compile_error! - [#578]
qemu: Allow dead code - [#550] Added
defmt::flush() - [#570] Support referring to
Selfin bitflags constants - [#568] Encoding docs.
- [#564] Make order of bitflags values deterministic
- [#561] Remove unused cortex-m-rt in panic-probe a=Dirbaio
- [#562] Remove call to fill in user survey from
README - [#560] Update cortex-m-rt crate from
0.6to0.7 - [#557] Add impl for TryFromSliceError
- [#556] Add impl for TryFromIntError
- [#551] Display git version & date to introduction section
- [#540] Separate "crate version" from "wire format version
- [#545] Revert "
build.rs: Obtain version from macro; simplify" - [#539] Add optional rzCOBS encoding+framing
- [#518]
build.rs: Obtain version from macro; simplify - [#543]
CI: Temporarily drop backward-compatibility check - [#542]
snapshot-tests: Test alternate hint for bitfields - [#538] Fix wrong bit count in comment.
- [#537]
snapshot-tests: Delete:?hint without impact - [#531] refactor the
macroscrate - [#534] Attribute test progress message to the test in question;
- [#535] Don't print leading space when timestamp is absent
- [#529] Refactor user-guide of
book - [#528] Support bitflags
- [#533] Adds add for user survey into readme.
- [#527]
book: Add logo and support text to introduction - [#526]
decoder: Simplify tests - [#359] Implement precedence of inner display hint
- [#523] Minimize dependencies
- [#508] [5/n] Format trait v2
- [#522] Replace
µshint withus - [#521] [3/n] Remove u24
- [#516]
xtask: Only install additional targets for tests that require them - [#512] Add overwrite option for xtask cross results.
- [#514] extend raw pointer implementation to include !Format types
- [#513] book/duplicates.md: discriminator -> disambiguator
- [#507] [2/n] - Remove code-size-costly optimizations
- [#505] [1/n] - Logger trait v2.
-
0.2.217 Jun 2021Release notes
Open source →Added
- [#446] Add usage examples for
Debug2Format,Display2Format - [#464]
impl<T> Format for {*const, *mut} T where T: Format + ?Sized - [#472]
impl Format forthe core::{iter, ops, slice} structs - [#473]
impl Format forall theCows - [#478] add
dbg!macro
Changed
- [#477] Disable logging calls via conditional compilation when all defmt features are disabled
- [#446] Add usage examples for
-
0.2.121 May 2021Release notes
Open source →Added
- [#403] Add knurling logo to API docs
Fixed
- [#413] Fix docs-rs build, by disabling feature "unstable-test"
- [#427] Drop outdated note about
defmt v0.2.0from book
-
0.2.019 Feb 2021Release notes
Open source →Added
- [#284] Implement support for
i128andu128types - [#291] Allows using
defmton x86 platforms by making the test suite use an internal Cargo feature - [#293] Make
defmtattributes forward input attributes - [#294] Permits
useitems inside#[defmt_test::tests]modules - [#296] Allows skipping the
defmtversion check in order to make development easier - [#302]
derive(Format)now supports more than 256 variants - [#304] impl
Formatforchars - [#313] Add display hints
- [#323] Merge
Uxx(u64)(Ixx(i64)) andU128(u128)(u128(i128)) data variants - [#327]
impl<T> Format for PhantomData<T> - [#329] Document safety of implementation detail functions
- [#335] Add the
defmt-itmcrate - [#338] Add
defmt-loggeranddefmt-printcrates - [#343] Customizable timestamps
- [#347] Document the grammar of
defmts current format parameter syntax - [#351] Allow tools to distinguish user-controlled format strings from generated ones
- [#354] Add
f64support - [#376] Make
defmt-loggermore configurable, removeprobe-runstrings - [#377]
defmt-test: support returningResultfrom tests - [#382]
impl Format for Infallible - [#391]
impl Format for core::time::Duration
Changed
- [#297] Improves the output formatting and includes a progress indicator
- [#299] Test embedded test runner (
defmt-test) as part of our CI setup - [#300]
#[derive]now uses built-in primitive formatting for primitive references - [#303] Employ the help of [bors]
- [#305]
Formatteris now passed by value, i.e. consumed during formatting - [#308] compile-fail test new
Formattermove semantics - [#312]
strfields in structs are now treated as a native type by the encoder instead of going through theFormattrait - [#325] Update our UI tests to work with the latest stable release
- [#331] Add more compile-fail tests
- [#332] Improve
Formattrait docs - [#333] Hide
Formatter'sinnerfield - [#334] Fix dead link in parser docs
- [#337] Improve diagnostics on double
write! - [#339] Make leb64 encoding fully safe (while at the same time reducing its code footprint)
- [#340] Stream
core::fmtadapters - [#345] Reduce code size by avoiding 64-bit arithmetic in LEB encoding
- [#350]
panic-probenow usesdefmtsDisplay2Formatto log panic messages. In consequence, panic messages won't get truncated anymore. - [#355] Clarify the docs on
Write::write - [#352] Do not display full version with
--help. Thanks to [Javier-varez]! - [#354] Support
f64floating point numbers. - [#355] Clarify docs on
Write::write. - [#363] Improve test coverage on basic
defmtusage onstdrust - [#364] Split firmware code into separate workspace
- [#368]
defmt-itm: Raise compile error onarmv6m - [#369] Move
bors.tomlto.github/ - [#371] Link to git version of
defmtbook - [#372] Update
Printerssection indefmtbook - [#373] Improve information in
Cargo.toml - [#379] Make link to
defmtbook clickable - [#380] Merge crates
elf2tableandloggerintodecoder - [#383]
defmt-test: Modify attributes in place and handle#[cfg] - [#384] pin unstable path dependencies
- [#385] defmt_decoder: Skip allocation of datastructure for raw symbols of the table entries in
fn get_locations - [#386], [#392] Refactor decoder
- rename
mod loggertolog - make
fn parse_*,fn get_locations,fn decodemethods ofstruct Table - various simplifications and restructuring of internal code
- rename
- [#387] CI: bump timeout to 20 minutes
- [#389] defmt_decoder: Bump deps
objectandgimli
Fixed
- [#301] Fix the nightly builds after a
linked_list_allocatorfeature change - [#310], [#311] remove the runtime check (and matching tests) if the
write!macro was called multiple times as this can no longer happen sincewrite!now consumes theFormatterdue to [#305]. - [#321] ASCII hint (
:a) is now respected when used together with theFormattrait (=?and=[?]). - [#342] Fix a data corruption issue when using
bools inwrite! - [#357] Fix issue preventing
defmtfrom compiling on MacOS.
- [#284] Implement support for
-
0.1.011 Nov 2020